Добавить Автора
Блог: http://blog.csdn.net/heiyeshuwu
Время: 5 мая 2008 г.
Недавно я просто использовал несколько основных зарубежных PHP-фреймворков (за исключением отечественных), которые в настоящее время используются в Китае. У меня есть интуитивное представление об этих фреймворках, и я хотел бы кратко рассказать, какие из них следует использовать при выборе. в качестве ссылки.
К основным эталонным фреймворкам относятся: CodeIgniter, CakePHP, ZendFramework и Symfony.
Примечание. Я не использовал многие фреймворки серьезно, я лишь кратко попробовал их. Многие из моих мнений могут быть незрелыми или ошибочными. Пожалуйста, поправьте меня, и давайте развиваться вместе. :-)
【CodeIgniter】
Официальный сайт: http://codeigniter.com
Китайский сайт: http://codeigniter.org.cn .
Руководство на китайском языке: http://codeigniter.org.cn/user_guide.
Видеоурок: http://codeigniter.org.cn/tutorials .
Тестовая версия: CodeIgniter_1.6.1
Преимущества:
1. Конфигурация проста, все конфигурации настраиваются с помощью PHP-скриптов, эффективность выполнения высокая; он имеет базовые функции маршрутизации и может выполнять маршрутизацию в определенной степени, имеет предварительные функции макета и может создавать определенный уровень внешнего вида интерфейса; уровень базы данных хорошо инкапсулирован и имеет базовую функциональность MVC;
2. Быстрый и лаконичный, мало кода, высокая производительность выполнения, простая структура, простота в использовании, низкая стоимость обучения, подробная документация. В комплект входит множество простых и удобных в использовании библиотек, платформа подходит для небольших приложений
. Недостатки:
1. Просто понимайте уровень модели как операции с базой данных.
2. Платформа немного проста и может удовлетворить потребности только небольших приложений, но немного менее способна удовлетворить потребности приложений среднего размера
.
Вообще говоря, CodeIgniter стоит использовать для создания простых и быстрых приложений. В то же время он может создавать определенную степень макета для облегчения повторного использования шаблонов. Уровень работы с данными хорошо инкапсулирован, и CodeIgniter не использует многие из них. слишком сложные шаблоны проектирования. И производительность, и читаемость кода хорошие. Что касается дополнительной библиотеки, то она тоже довольно хороша, проста и эффективна.
【CakePHP】
Официальный сайт: http://www.cakephp.org.
Руководство на китайском языке: http://www.1x3x.net/cakephp.
Видеоурок: http://search.you.video.sina.com.cn/s?key=cakephp.
Тестовая версия: cake_1.1.19.6305
Преимущества:
1. CakePHP — это фреймворк, наиболее похожий на RoR, включая метод проектирования и метод работы с базой данных Active Record, уровень дизайна очень элегантный, не содержит дополнительных библиотек, все функции являются чистыми фреймворками, а эффективность выполнения высокая; неплохой уровень базы данных. Функции hasOne и hasMany очень мощные и подходят для сложной бизнес-обработки; функция автоматического формирования леса (scaffold) в основном реализована; каждый уровень MVC и имеет функцию сценария командной строки автоматической работы;
2. Документация относительно полная и успешно продвигается в Китае. Большинство людей знают CakePHP. Стоимость обучения средняя
.
1. Очень серьезная проблема CakePHP заключается в том, что он понимает модель как операцию уровня базы данных, что серьезно влияет на его способность работать помимо базы данных.
2.
Функция кэширования CakePHP немного слаба, а его функция настройки немного слаба; CakePHP не подходит для крупномасштабных приложений, а только для приложений среднего размера. Стоимость обучения немного выше для небольших приложений.
Вообще говоря, фреймворк CakePHP представляет собой очень важную эпоху и является представителем фреймворка PHP и в настоящее время играет очень важную роль. Многие самописные фреймворки имитируют метод CakePHP, который является знаковым продуктом, раскрывающим методы разработки RoR Agile. философия проектирования, рассматривающая операции с базами данных как единственную модель, является отличным инструментом для быстрой разработки приложений и прототипов, ее также стоит выбрать в качестве среды разработки для веб-сайтов Web 2.0;
【Zend Framework】
Официальный сайт: http://framework.zend.com
Руководство на китайском языке: http://www.phpeye.com/zf
Видеоурок: http://framework.zend.com/docs/screencasts.
Тестовая версия: ZendFramework-1.5.0
Преимущества:
1. Официально выпускается, поставляется с множеством библиотек. Сама платформа написана с использованием множества шаблонов проектирования. Архитектура очень элегантна, а эффективность выполнения средняя. Конструкция MVC относительно проста, имеет функции маршрутизации и файл конфигурации. относительно мощный (может обрабатывать XML и php INI), различные библиотеки очень мощные и имеют наиболее полные функции среди всех PHP-фреймворков, включая то, что это не только фреймворк, но и большая библиотека классов (заменяющая PEAR). его основная особенность: он может интуитивно поддерживать уровень модели в дополнение к операциям с базой данных (более мощный, чем CodeIgniter и CakePHP), и может легко использовать функцию загрузчика для загрузки других недавно добавленных классов. Функция кэширования очень мощная и поддерживается из внешний кеш к внутреннему кешу. Кэш терминала поддерживает Memcache, APC, SQLite, файлы и т. д., функция работы с базой данных очень мощная и поддерживает различные драйверы (адаптеры).
2.
Документация очень полная, отечественное сообщество очень зрелое и в настоящее время используется многими веб-сайтами Web 2.0, а стоимость обучения средняя.
1. Функция MVC относительно слаба, уровень представления просто реализован (так же, как и не реализован), и он не может очень мощно управлять фронтенд-страницей.
2. Нет автоматизированного скрипта. Чтобы создать приложение, включая файл входа, необходимо создавать его вручную. Стоимость входа высока.
3. Zend Framework не является большой проблемой как фреймворк для приложений среднего размера, и его едва ли можно использовать в качестве фреймворка для крупномасштабных приложений. Однако, как очень зрелый крупномасштабный PHP-фреймворк,
для
его разработки все же требуются некоторые усилия.оценивать:
Амбиции Zend Framework как официально созданного фреймворка предсказуемы. Он хочет вытеснить другие фреймворки и в то же время инкапсулировать множество мощных библиотек классов для предоставления универсальных услуг фреймворка. Более того, их команда разработчиков очень мощная и полностью работоспособная. способность разрабатывать очень мощные продукты, можно с уверенностью сказать, что у Zend Framework большое будущее, если уделять больше времени улучшению инфраструктуры. Аналогичным образом, архитектура Zend Framework сама по себе относительно элегантна, что показывает, что Zend официально имеет много экспертов и относительно продвинут в концепциях дизайна. Хотя некоторые функции не полностью реализованы, такие как уровень представления, сценарии автоматизации и т. д., все это зависит. на будущее обновление. Вообще говоря, Zend Framework — самый ожидаемый фреймворк. Конечно, нет проблем, если вы захотите использовать его в своих проектах уже сейчас.
【Symfony】
Официальный сайт: http://www.symfony-project.org
Китайский сайт: http://symfony-project.cn .
Полное руководство: http://www.symfony-project.org/book
Ссылка на обучение: http://sf.thecodecentral.com .
Тестовая версия: symfony-1.0.13
Преимущества:
1. Symfony — самый мощный PHP-фреймворк, который я знаю, и я использую его уже давно, но многие функции еще не открыты; он полностью реализует три уровня MVC и инкапсулирует все, включая $_POST, $_GET; Данные, обработка исключений, функция отладки, обнаружение данных; включает мощную функцию кэширования, автоматическую загрузку классов (эта функция очень крутая), мощную поддержку национализации i18n, имеет очень мощную работу на уровне представления и может содержать несколько файлов по частям; Очень мощная функция конфигурации. Использование конфигурации yml может контролировать все фреймворки и поведение при запуске программы, что настолько мощно, что лишает людей дара речи: вы можете по своему желанию определять различные классы, а Symfony может автоматически загружать (автозагружать) эти классы; который можно использовать в программе. Может вызываться по желанию. Включает мощное многоуровневое управление проектами и приложениями: Проект --> Приложение --> Модуль --> Действие, которое может удовлетворить потребности нескольких приложений в одном проекте, и каждый уровень может определить свою собственную библиотеку классов, макет; очень мощные функции работы с командной строкой, включая создание проектов, создание приложений, создание модулей, обновление кэша и т. д.;
2. Symfony, безусловно, является лучшим выбором для разработки больших и сложных проектов, поскольку использование Symfony значительно сэкономит затраты на разработку, и не будет проблем при совместной работе нескольких человек. После определения базового класса на уровне проекта можно использовать любой модуль. Недостатки повторного использования кода
:
1. Модель работы с базой данных использует тяжеловесную опору и креольский язык, но в тестируемой мной версии они были перенесены в аддон. Их можно использовать или нет.
2. Функцией кэширования невозможно управлять. Кэш всегда кэшируется во время разработки и отладки. Вам необходимо выполнить symfony cc и symfony rc, чтобы очистить и перестроить кеш;
3. Эффективность не очень высокая, особенно процесс парсинга шаблонов и чтения файлов конфигурации, занимающий много времени;
4. Стоимость обучения очень высока, а в Китае нет зрелого сообщества и документации, даже руководства на китайском языке. Соответственно, чтобы освоить все функции и
оценить:
Symfony — это, безусловно, фреймворк корпоративного уровня, единственный, который, казалось бы, может конкурировать с мощными фреймворками в области Java. Мощные вещи, естественно, сложны в освоении, но они также полезны для разработки проектов. Естественно, рекомендуется использовать Symfony. для сложных проектов я думаю, что оно того стоит. Стоимость обслуживания на более позднем этапе относительно невелика, а возможность повторного использования очень сильна. Соответственно, если вы используете Symfony для более сложных интернет-проектов, вам необходимо рассмотреть вопрос распределения базы данных. Тогда вам нужно отказаться от уровня работы с базой данных, который поставляется с Symfony, и определить его самостоятельно. Конечно, Symfony поддерживает произвольное построение слоя модели.
[Общий комментарий]
Вышеупомянутые фреймворки имеют свои особенности, и все они являются проектами с открытым исходным кодом. Однако проекты, на которые ориентированы эти фреймворки, различны. Вообще говоря, CodeIngiter больше подходит для небольших проектов, а CakePHP и Zend Framework больше подходят. проекты среднего размера, а Symfony больше подходит для крупных и тяжелых проектов. При выборе проектов вы должны полностью учитывать настраиваемость и масштабируемость структуры, поскольку каждый проект не может определить, будете ли вы вносить изменения по мере изменения ваших потребностей.
Условно говоря, Zend Framework и Symfony обладают хорошей способностью справляться с изменениями, особенно классы на уровне модели, которые можно настраивать по своему желанию, что делает очень удобным добавление собственных бизнес-классов или классов обработки данных. Лично я рекомендую эти платформы. использование в средних и крупных проектах. CodeIngiter и CakePHP также могут сыграть значительную роль в проектах малого и среднего размера, быстрой разработке и создании прототипов и очень подходят для разработки проектов прототипов с неясными целями. Лучший способ понять структуру — использовать ее, а лучший способ изучить ее — посмотреть видео. :-)
У доброжелательных людей разные мнения, а у мудрых людей разные мнения. При выборе структуры для проекта внимательно изучите потребности проекта и будущие изменения, а затем выберите подходящую структуру, чтобы достичь разумного баланса между скоростью разработки проекта и производительностью. позже ремонтопригодность Конечно, возможно, удобнее написать фреймворк самостоятельно. :-)
Я сделал общую оценку нескольких фреймворков, думаю, многое не по делу, поэтому оставлю все как есть. Комментарии и исправления также приветствуются!