- организация файлов и кодов
То, что вы создали папку «/ inc» и создали файл «functions.php», не означает, что ваш код организован.
Когда вы настраиваете PHP Framework, он уже имеет определенную структуру папок. От вас ожидается, что вы будете следовать одним и тем же стандартам и держать все организованным определенным образом.
Как только вы привыкнете к этой модели, вы никогда не захотите возвращаться.
К сожалению, для некоторых чемпионов командной строки, которые все еще используют vi, это может быть проблемой. Вам нужно будет работать с большим количеством файлов меньшего размера. Но когда вы используете приличный современный редактор кода или IDE, вам будет очень легко быстро просмотреть код вашего приложения и быстро найти то, что вам нужно.
- Утилиты и библиотеки
PHP является отличным языком для веб-разработки и предоставляет бесчисленное множество инструментов и библиотек.
Однако, если вы когда-нибудь попытаетесь создать целый веб-сайт только с помощью PHP, вы обнаружите, что либо выискиваете много стороннего кода и библиотек, либо вам приходится писать их самостоятельно.
Все лучшие PHP-фреймворки поставляются с определенными библиотеками и помощниками, которые помогут вам с:
Проверка формы
Фильтрация ввода / вывода
База данных Абстракция
Сессия и обработка файлов cookie
Электронная почта, календарь, нумерация страниц и т. Д.
Список можно продолжить. Не говоря уже о том, что сообщество предоставляет множество плагинов, которые вы можете добавить в свою среду.
- Безопасность
В PHP вы уже можете найти множество функций фильтрации ввода и вывода для защиты вашего сайта от определенных атак.
Однако ручное использование этих функций может стать утомительным, и вы можете время от времени о них забывать.
С помощью фреймворка большая часть работы может выполняться автоматически. Например, в CodeIgniter:
- Любое значение, переданное объекту базы данных, фильтруется по SQL
инъекционные атаки.
- Все функции, генерирующие html, такие как помощники по формам и помощники по URL
фильтровать вывод автоматически.
- Весь ввод пользователя может быть отфильтрован от атак XSS.
- Автоматическое шифрование файлов cookie - это только вопрос изменения
опция конфигурации.
- Меньший код и ускоренная разработка
Конечно, есть кривая обучения для всех фреймворков PHP. Но как только вы преодолеете этот горб, вы сможете воспользоваться преимуществами быстрой разработки приложений.
Вы будете писать меньше кода, что означает меньше времени, затрачиваемого на набор текста. Вам не придется все время гоняться за сторонними библиотеками для каждого нового проекта, потому что большинство из них будут поставляться с установкой фреймворка по умолчанию.
Кроме того, поскольку вы более организованы, вам будет намного легче выявлять ошибки, поддерживать код и вносить изменения в существующий код.
-Производительные инструменты
Один из главных аргументов скептиков приходит в этой теме. Очевидно, что при создании приложения «Hello World» со структурой и простым PHP-кодом наблюдается снижение производительности.
Но эти тесты - просто плохие примеры. Прежде всего, вы должны понимать, что разработчики стоят дороже, чем серверы. Экономия времени на разработку и обслуживание может перевесить любые дополнительные деньги, которые вам нужно потратить на серверы.
Отбросив все это в сторону, вы можете получить выигрыш в производительности, используя PHP-фреймворк. Они поставляются с инструментами, которые помогут вам выполнять кэширование, тесты, профилирование и т. Д. *
Современные фреймворки также хороши с динамической загрузкой, так как они загружают код только по мере необходимости. Различные запросы страниц могут загружать различное количество кода библиотеки в зависимости от того, что нужно использовать.
-Подходит для совместной работы
Способ организации вашего проекта в PHP Framework также помогает вам создать подходящую среду для совместной работы.
Вы можете позволить своим дизайнерам работать с Views, гуру баз данных работать с Models, позволить умному программисту (себе;)) создавать многократно используемые библиотеки и плагины и т. Д. *
Также вы можетепусть кто-нибудь создаст модульные тесты, потому что они тоже поставляются с инструментами для этого.
И это весело!