LINUX.ORG.RU

Silex вопрос правильной организации

 , , , ,


0

1
  • Структура каталогов у меня сейчас такова (жаль не знаю как рисовать дерево, буду строками): $WEB_ROOT/silex/.htaccess, $WEB_ROOT/silex/index.php,$WEB_ROOT/silex/web/vendor/some_stuff/

    Вопрос можно ли оставить такой структуру каталогов или лучше воспользоваться скелетом с ГитХаба?

  • Далее, к примеру, сейчас у меня такой хелловорлд
    <?php
    ini_set('display_errors', 1);
    require_once __DIR__.'/vendor/autoload.php';
    
    
    
    $app = new Silex\Application();
    
    $app->get('/', function() {
    	$factory = new RandomLib\Factory;
    	$generator = $factory->getLowStrengthGenerator();
    	$randomString = $generator->generateString(16, 'abcdefghijkl');
        return $randomString;
    });
    $app->get('/hello/{name}', function ($name) use ($app) {
    return 'Hello, '.$app->escape($name);
    });
    
    $app->run();
    ?>
    
    Использование моделей и БД вообще пока не предполагается,

    мне как новичку велик соблазн реализовать логику работы приложения в

    контроллере и привязать на нужный роут, но понимаю, что это страх и ужас :-)

    Т.е. где размещать логику приложения и, возвращаясь к первому вопросу,

    как его правильно структурировать по каталогам для этого?!

Заранее всем спасибо за помощь!

★★★★★

Т.е. где размещать логику приложения

В модели и размещать. Модель понимается в смысле математическая модель. То, что в большинстве случаев на пыхе модель сводится к взаимодействию с БД не значит, что это единственное назначение модели.

как его правильно структурировать по каталогам для этого?!

Как тебе удобно. Главное не ломать PSR-4.

no-such-file ★★★★★ ()
Ответ на: комментарий от no-such-file

Модель понимается в смысле математическая модель. То, что в большинстве случаев на пыхе модель сводится к взаимодействию с БД не значит, что это единственное назначение модели.

Все время об этом забываю)))

Twissel ★★★★★ ()

сколько ни крутил этот силекс, всё равно ловил себя на том, что пытаюсь сделать из него симфони.

Структуру каталогов делай лучше как в примере. Можешь переименовать публичную папку в public_html, если этого хостинг требует. Главное, чтоб в webroot был только index.php и статика, а весь остальной код - отдельно. И не нужно свой код класть в папку vendor, она для зависимостей composer. Для своего кода подключи другую папку в секции autoload composer.json файла. В доках композера всё описано.

Логику прячь в сервисы и организовывай это всё через DI, как тут описано. Структурировать по каталогам можно как угодно по PSR, но мне проще группировать классы по назначению. В том смысле, что «тут авторизация, тут система редактирования», а не «здесь будут все модели, здесь все сервисы, а здесь все репозитории».

nguseff ()
Ответ на: комментарий от nguseff

Спасибо за ответ.

В качестве основы структуры приложения я решил таки взять silicone-skeleton.

Уже успел увидеть, что к чему. Все так, как ты и описываешь.

Вопрос ясен :-)

Twissel ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.