Может войдёшь?
Черновики Написать статью Профиль

Разделение логики start.php

перевод

С постепенным ростом вашего приложения вы замечаете, что оно стало терять в организованности. Ваш start.php наполняется смесью фильтров, составителей, именованных шаблонов, событий, проверок ввода, макросов HTML и автозагрузок классов. Всё превращается в хаос, усугубряемый тем, что start.php по умолчанию уже содержит немного кода. Большинство перечисленного выше можно поместить в routes.php, но если у вас мнение на этот счёт совпадает с моим, то вы предпочтёте определять там только маршруты.

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

Лично я создаю папку start в папке application. Вы можете назвать её, как вам видится лучше. Теперь мы разделим нашу логику и поместим её туда в виде отдельных файлов.

В моих проектах application/start/ содержит следующие файлы:

  1. autoloading.php (автозагрузка)
  2. basset.php (настройка Basset)
  3. composers.php (составители)
  4. filters.php (фильтры)
  5. validation.php (проверка ввода)

Вы можете добавить нужные для ваших задач файлы — например, events.php (события), macros.php (макросы HTML).

Вот содержимое моего application/start.php:

PHP
// подключить автозагрузчик:
require __DIR__ DS 'start' DS 'autoloading.php';

// подключить фильтры:
require __DIR__ DS 'start' DS 'filters.php';

// подключить составители и именованные шаблоны:
require __DIR__ DS 'start' DS 'composers.php';

// подключить правила проверки пользовательского ввода (например, форм):
require __DIR__ DS 'start' DS 'validation.php';

// подключить маршруты Basset:
require __DIR__ DS 'start' DS 'basset.php';

Вам не хочется перечислять их все вручную? Тогда вы можете использовать класс DirectoryIterator:

PHP
// Файл: application/start.php

// подключить файлы запуска.
$files = new DirectoryIterator(__DIR__ DS 'start');

foreach(
$files as $file) {
  if(
$file->isDot()) continue;

  require 
$file->getPathname();
}

Конкретное решение зависит только от вас.

Заключение

Теперь логика разделена и наш start.php приведён в порядок. Мы точно узнаём, где находится нужный нам код просто взглянув на содержимое папки application/start. Конечно, вы можете взять продемонстрированный мной подход за основу и расширить его так, как нужно для вашего проекта. Для маленького по масштабам вёб-приложения это может быть вовсе не нужно, а как только оно вырастет это может пригодиться — ведь каждому участку кода будет отведено собственное место.

Как вы считаете, полезен ли этот материал? Да Нет

Написать комментарий

Разметка: ? ?

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