PHP — отличный инструмент, он может быть простым или сложным. Разные проекты должны использовать разные PHP.
Небольшой проект — простой и понятный PHP.
Как правило, для веб-сайта с менее чем 20 функциональными страницами мы можем использовать очень простую структуру фреймворка. В этом масштабе я предлагаю использовать более прямой метод кодирования, ориентированный на процесс. Причина очень проста: нет необходимости создавать N много файлов классов. В результате в контроллере остается только один новый. Разумеется, исключаются проекты с часто меняющимися требованиями.
На этом уровне преимущества PHP очевидны: быстрое развитие, понятное с первого взгляда. Недостатки также хорошо скрыты.
Проект среднего размера — красиво структурированный OO PHP.
Для проекта среднего размера я рекомендую использовать хорошо продуманную структуру. Эта структура может быть основана на модели MVC и инкапсулировать множество базовых операций. Самое лучшее — это прозрачный механизм кэширования, чтобы объектно-ориентированный механизм, который мы добавляем для адаптации к изменениям, мог работать быстрее и лучше.
на этом уровне. Стали проявляться недостатки PHP, такие как неполная поддержка объектно-ориентированного подхода (в PHP5 он был значительно улучшен) и только однопоточный режим. Кроме того, некоторым периферийным инструментам начинает не хватать поддержки. Например, в PHP нет хороших инструментов рефакторинга, а в IDE нет хорошего инструмента модульного тестирования. Преимуществами, конечно, являются оригинальное быстрое развитие и широкий спектр доступных ресурсов с открытым исходным кодом.
Большие проекты — расширенный и оптимизированный PHP.
Большие проекты здесь относятся просто к распределенным проектам, то есть вашу программу необходимо развернуть на N серверах. На этом уровне PHP не хватает поддержки по сравнению с j2ee. Я подробно обсудил с тенью на 735 некоторые проблемы, которые необходимо решить, если PHP будет применяться в больших системах. Конечно, эти проблемы касаются не только языка PHP, но также включают проблемы, связанные с разработкой:
1 Совместное использование кода страницы PHP, PHP После того, как исходный код один раз загружен в память, он сохраняется в ней - это можно сделать с помощью оптимизаторов APC и Zend.
2. Совместное использование объектов данных между страницами PHP. Объект данных, например массив, может быть разделен между a.php и b.php. Теперь это можно сделать с помощью сериализации, но это можно сделать с помощью файла io. память или memcached для этого.
3 Пул соединений с базой данных PHP, поскольку в случае нескольких внешних интерфейсов PHP не может контролировать соединение с базой данных, поэтому необходимо создать пул соединений перед базой данных, что-то похожее на sqlrelay. Кроме того, кэширование данных также очень важно. Есть совет для интенсивной разработки: не трогайте базу данных, если можете.
4 PHP-система внешнего кэширования. Прозрачный и управляемый механизм кэширования, гарантирующий, что страницы веб-сайта будут запрашивать базу данных наименьшее количество раз. Есть много реализаций этого, но я не нашел особенно хорошей.
5. После того, как PHP-приложение успешно решит эти проблемы, оно без проблем справится с несколько большим давлением.
На этом уровне важно интегрировать PHP, Java, C++, Python и т.п., чтобы сделать систему эффективной. Мы можем использовать memcached для управления распределенной памятью, Lucene для полнотекстового извлечения и контейнеры ejb для размещения некоторых компонентов бизнес-логики. PHP служит связующим звеном между интерфейсом и системой, позволяя быстро и гибко связывать их вместе.