Команда разработчиков

Aisamiery
На сайте с 12.04.2015
Offline
293
#261

ArbNet, так покажите реализацию и возможности своего роута? Это ведь первое что нужно сделать во фреймворке? Можем еще с symfony сравнить:

1. Там есть сервис контейнер, который подтянет мои контроллеры и автоваринг который закинет в них зависимости

2. В котроллере мне достаточно объявить аннотацию Route которая повзоляет мне задать и урл и шаблон урла и валидацию урла и на какие методы реагировать.


class BlogController extends AbstractController
{
/**
* @Route("/blog", name="blog_list")
*/
public function list()
{
// ...
}
}

/**
* @Route(
* "/contact",
* name="contact",
* condition="context.getMethod() in ['GET', 'HEAD'] and request.headers.get('User-Agent') matches '/firefox/i'"
* )
*
* expressions can also include config parameters:
* condition: "request.headers.get('User-Agent') matches '%app.allowed_browsers%'"
*/
public function contact()
{
// ...
}

3. А можно еще замаппить даже сразу на сущность, чтобы в метод пришло не ID страницы или slug страницы, а сразу модель страницы из БД


class BlogController extends AbstractController
{
// ...

/**
* @Route("/blog/{slug}", name="blog_show")
*/
public function show(BlogPost $post)
{
// $post is the object whose slug matches the routing parameter

// ...
}
}

И так далее далее далее. Вот это я называю удобно, вот это я называю для разработчиков.

Ну и наконец, фреймворк это каркас приложений, а не каркас сайтов, как на вашем фреймворке при помощи xml структуры описать api для мобильного приложения или плагина для облачной срм? Я уже даже молчу про организацию тестирования. Это настолько большой объем работы что скорее всего мы не дождемся релиза к сожалению, а если и дождёмся то он будет тестовый как и сайт с документацией.

И самое банальное, я знаю как это все сделать с нуля самостоятельно, но я опять же задам вопрос - зачем? Зачем мне тратить на это время, если эти инструменты уже закрыли эти задачи с лихвой и остается только разрабатывать специфичную для проекта логику?

Разработка проектов на Symfony, Laravel, 1C-Bitrix, UMI.CMS, OctoberCMS
ArbNet
На сайте с 27.10.2019
Online
124
#262
Sly32:
Засим откланяюсь, дальше без меня

Продолжай говнокодить и не суйся в мои темы :)

Aisamiery:
покажите реализацию и возможности своего роута?

У меня намного проще :)

никаких

Aisamiery:
сервис контейнер, который подтянет мои контроллеры и автоваринг который закинет в них зависимости

Вот зачем столько всякой хрени..

У меня просто по расширению запускается обработчик


// маршрутизация
$nav=pathinfo(trim($_SERVER['REDIRECT_URL'],'/'));
switch($nav['extension']){
case 'js': @require CORE.'js.php'; break;
case 'css': @require CORE.'css.php';break;
case 'api': @require CORE.'api.php';break;
case 'web': @require CORE.'web.php';break;
default:
if($_SESSION['ldt'])@require CORE.'publish.php';
else @require CORE.'initialization.php';
}
Обсуждение разработки на моём фреймворке https://discord.gg/23N4s9x2kp
IL
На сайте с 20.04.2007
Offline
435
#263

ArbNet, REDIRECT_URL не везде работать будет.

ArbNet:
case 'js': @require CORE.'js.php'; break;

Правильно ли я понял, что статика будет обрабатываться PHP скриптом?

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
Aisamiery
На сайте с 12.04.2015
Offline
293
#264
ArbNet:

У меня намного проще :)
никаких

Вот в этом и проблема, у вас никаких инструментов, зачем ваш фреймворк, если можно switch сделать и самому? И вы вот это пишите 3 месяца и переделываете?

ArbNet:

Вот зачем столько всякой хрени..

Вы не делали сложных проектов, ни одного. Суть в том, что в программе её компоненты должны выполнять минимальную функцию и знать ровно столько сколько им нужно чтобы выполнить эти действия. Тогда любой кусочек программы можно будет переписать малой кровью. Если у вас код зависит от другого кода и так по наклонной, то любое изменение в проекте будет грозить крахом всего проекта и кучей багов. Сервис контейнер позволяет не влезая в ядро подменить реализацию любой части системы на нужную тебе, не трогая ядро фреймворка, исходники модулей других разработчиков и так далее, что я замечу очень важно в модульных системах.

ArbNet:

У меня просто по расширению запускается обработчик

Вам осталось совсем чуть чуть

---------- Добавлено 20.03.2020 в 14:32 ----------

ArbNet:
На выходе более качественный продукт, чем у этих сеньоров :)

У вас не хватит опыта сделать качественный продукт. Нельзя прочитать книжку и сделать качественный продукт. Я хз почему вас считают подкованным человеком другие форумчане, но я явно вижу что у вас уровень "прочитал книжку Котёрова наполовину". Где же ваш релевантный опыт? В каких проектах вы участвовали, чтобы говорить что вы лучше "этих сеньоров". Чем лучше то? Почему вы вообще считаете себя разработчиком/программистом? Потому что стучать по клавиатуре умеете? По вершкам нахватались и ходите с умным видом "это говно и вот это говно".

Удачи вам в ваших разработках и обучении. Как вам уже сказали "пилите Шура, пилите, она золотая"

PS. Вы даже языка то толком не знаете, и не знаете почему нельзя использовать подавление ошибок которого у вас 6 из 10 строк кода.

PPS. А код который вы привели в простонародье называется "индусским", потому что это все можно написать более коротко, понятнее, лайтовее, с проверкой файла на существование и всего одним require

danforth
На сайте с 18.12.2015
Offline
153
#265
Aisamiery:
Почему вы вообще считаете себя разработчиком/программистом?

Ггг, кажется ты стал забывать на каком форуме находишься. Просто сравни его с севладом. ТС знает как:

- писать код самому

- вырезать br из списка (нужный навык в 2к20)

- и даже склонен нормально общаться, пока его не начинают откровенно унижать или оскорблять

Я не понимаю зачем заниматся травлей ТС. Я думаю ТС вполне адекватен, чтобы по итогу согласится с проблемными местами своего фреймворка, если с ним аргументированно вести дискуссию. И судя по всему, он не ставит целей написать инструмент для матерых разработчиков.

Junior Web Developer
Aisamiery
На сайте с 12.04.2015
Offline
293
#266
danforth:
Ггг, кажется ты стал забывать на каком форуме находишься. Просто сравни его с севладом.

Я чуть выше писал, что его поведение очень напоминает поведение местных ВП спецов, которые "сделают все за 3 дня и естественно за 3 рубля"©

danforth:

Я не понимаю зачем заниматся травлей ТС. Я думаю ТС вполне адекватен, чтобы по итогу согласится с проблемными местами своего фреймворка, если с ним аргументированно вести дискуссию.

Травля если и начинается, то ответом на его посты. Он спрашивает, ему отвечают (нормально как правило) и дальше ТСа начинает заносить на поворотах маленько. Никак он не воспринимает ни критику, ни советы, вообще ничего - сам себе на уме. Думает что он написал файлик со свитчем и заюзал xml либу с ядра (при том видимо SimpleXML, потому что остальные осилить нужны мозги), теперь перец такой, что его всякий юзеры джанги хрен переплюнут.

danforth:
И судя по всему, он не ставит целей написать инструмент для матерых разработчиков.

Он делает убийцу ВП и Laravel одновременно если что.

S
На сайте с 23.05.2004
Offline
316
#267
ArbNet:
$nav=pathinfo(trim($_SERVER['REDIRECT_URL'],'/'));
switch($nav['extension']){
case 'js': @require CORE.'js.php'; break;
case 'css': @require CORE.'css.php';break;
case 'api': @require CORE.'api.php';break;
case 'web': @require CORE.'web.php';break;
default:
if($_SESSION['ldt'])@require CORE.'publish.php';
else @require CORE.'initialization.php';

Что то я уже пхп поздабыл, поправьте если я не прав:

1. на require подавление ошибок не действует

2. в данном коде require подгрузится для всех блоков, в не зависимости от кейса. А вот include как раз подгрузит только нужный.

3. статику лучше отдавать средствами вэб сервера.

4. подавлять ошибки вообще очень плохая практика. Если уж так приспичило - есть error_reporting и вывод их куда нибудь в лог фай.

Это просто подпись.
ArbNet
На сайте с 27.10.2019
Online
124
#268
ivan-lev:
Правильно ли я понял, что статика будет обрабатываться PHP скриптом?

Да. У меня предусмотрено два вида подключения файлов.

1. Если запрашиваемый файл есть, то он отдаётся статично как и положено

2. Если такого файла нет, то обрабатывается скриптом, в гет параметре можно указать какие файлы нужно склеить в один, чтобы закэшировалось в браузере одним файлом и при подобном вызове бралось уже из кэша браузера

Если страница не большая можно подключить маленькие файлы стилей или скриптов, Или когда постоянно используются много разных стилей и скриптов, то их можно объединить

Aisamiery:
можно написать более коротко, понятнее, лайтовее

А если подумать?

Я так сделал чтобы можно было просто добавлять другие обработчики или удалять если что не нужно. Элементарно Ватсон :)

Разобраться в том г. что другие используют мне не составляет труда, а разобравшись, что-то пропадает желание его использовать.

danforth, Спасибо. Да именно, делаю в первую очередь для себя.

Aisamiery
На сайте с 12.04.2015
Offline
293
#269
Stek:
Что то я уже пхп поздабыл, поправьте если я не прав:
1. на require подавление ошибок не действует
2. в данном коде require подгрузится для всех блоков, в не зависимости от кейса. А вот include как раз подгрузит только нужный.
3. статику лучше отдавать средствами вэб сервера.
4. подавлять ошибки вообще очень плохая практика. Если уж так приспичило - есть error_reporting и вывод их куда нибудь в лог фай.

1. Действует, просто будет белая пустая страница, так как будет подавлен Fatal

2. Нет. Свитч отработает как надо. Разница в том что первый выкидывает Fatal а второй Warning

3. Вообще не обсуждается даже, я в целом даже не вижу прикола этого свитча и по приведенному коду я так понимаю человек даже не знает определения слова роутинг, раз показал именно этот код.

4. Это наследие с php4, сейчас это треш полнейший. В 7 версии даже Fatal нормально ловятся.

ArbNet
На сайте с 27.10.2019
Online
124
#270
Stek:
на require подавление ошибок не действует
require аналогично include, за исключением того, что при ошибке он также выдаст фатальную ошибку уровня E_COMPILE_ERROR. Другими словами, он остановит выполнение скрипта, тогда как include только выдал бы предупреждение E_WARNING, которое позволило бы скрипту продолжить выполнение.

У меня если нет обработчика запроса значит будет пустой ответ сервера просто. Любые не верные запросы будут игнорированы.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий