zend-framework против Kohana против Symfony

Какую из этих структур вы бы рекомендовали кому-то, кто знает основы PHP? Какие преимущества и недостатки?

Я бы не предложил какие-либо рамки для тех, кто знает только основы. Вместо этого, я бы посоветовал сначала получить твердое владение ООП и наиболее распространенными шаблонами дизайна, потому что именно это вы найдете в этих рамках. Это также не мешает вам узнать о доступных доступных PHP-библиотеках и расширениях.

Я считаю, что рамки – это обоюдоострый меч для начинающих. Вы можете делать больше за меньшее время во многих случаях, но в других случаях (а не в нескольких случаях) вы будете ошибаться, потому что не понимаете сложность кода рамки. Я думаю, вы должны быть в состоянии прочитать структуру и понять ее архитектуру, если хотите ее использовать.

Тем не менее, кажется, что настоящие трещины используют Symfony . Это может стать или быть уже самой лучшей, самой универсальной, самой мощной структурой. Но определенно нужно много понимать принципы программирования, а также веб-технологии и серверные технологии в целом.

Также очень мощным и намного проще начать с Zend Framework . Это может сделать для вас гораздо больше, чем Кохана.

Если вы хотите легкий вес, Кохана тоже хороший выбор. Он прошел долгий путь в последние месяцы, и я думаю, что он быстро зарекомендовал себя как новый легкий фаворит.

Итак, в целом, три фреймворка, о которых вы упоминали, являются тремя главными структурами на рынке фреймворков PHP в настоящий момент, и вы не ошибетесь ни с одним из них.

Несмотря на то, что ZF хорошо зарекомендовал себя и хорошо документирован, я бы предложил Kohana, поскольку он довольно немного сложнее. Очень легко начать заниматься этим, просто загрузив или клонировав образец приложения из github .

Симфония не для новичков. Я не согласен с тем, что рамки вообще не для новичков. Начиная с пустого файла и без рамки оставляет весь архитектурный дизайн до тех, кто не знает, что они делают, начиная с облегченной структуры, такой как Kohana, дает вам хорошо организованную платформу и документацию, чтобы попасть в исходное положение. Обучение OO без каких-либо примеров для вас очень сложно, так как вы еще не знаете, как выглядит хороший дизайн OO.

После загрузки / клонирования примера приложения Kohana, нажмите на документы, и вы быстро напишите хорошо продуманный OO-код.

Для начинающих и используя три примера, которые вы дали, я бы сказал, начните с Kohana (или Code Igniter) по этим причинам.

  1. Это легкая структура, которая является хорошей отправной точкой для полной разработки PHP, потому что она служит руководством в том, как организовать проект на языке, который не имеет большой структуры на своем собственном
  2. Представляет основные концепции MVC.
  3. Имеет базовые функции, которые будут полезны в любом проекте PHP, например, кэширование, фильтрация данных и т. Д.

Затем я перейду к Zend Framework, если вы планируете или стремитесь работать над более крупными проектами по этим причинам:

  1. Документации Коханы очень не хватает (она удобна для новичков, потому что вы в конечном итоге ковыряетесь и видите, что делает тактику рамки, чтобы они не видели, как этот зловещий священный код, который является плюсом, но в крупном проекте с временными графиками это раздражает )
  2. Кохана применяет определенные соглашения, которые часто неудобны в крупных проектах
  3. Недостатки зрелых функций, которые полезны для разработки «предприятия», например, для достойной модульной системы тестирования (в Кохане есть рудиментарные модули phpunit, и вы, безусловно, можете использовать базовый PHPUnit, но в отличие от Zend Framework имеет расширенные функциональные возможности PHPUnit, чтобы лучше использовать его фреймворк)
  4. Лучшая поддержка. В основе Zend лежит компания Zend, а также огромное сообщество. Это огромная победа для них, потому что она пронизывает все вокруг структуры, например, конфигурация в архитектуре Zend намного лучше реализована, более надежные функции безопасности, правильная автозагрузка классов на основе пространства имен PEAR, и она содержит множество компонентов. Некоторые из этих преимуществ вы можете пожал плечами, когда начинаете, но становитесь бесценными при принятии крупных проектов.

Я не использовал symfony, но из того, что я могу сказать, также имеет некоторые полезные функции, как только вы получите больше возможностей для PHP (лучше ORM, лучше леса и т. Д.). Синопсис: Кохана – хорошее начало, но я бы посоветовал не идти туда, если вы планируете попасть в PHP за пределами небольших сайтов.

В вашем случае я бы пошел (в этом порядке):

  1. Kohana
  2. Zend Framework

Так как их легче подобрать (особенно для новичка), чем для Symphony.

Я всегда задавался вопросом, почему люди говорят, что не предоставление единичной тестовой системы является серьезным недостатком в рамках. Ну, тестирование вашего приложения – ваша ответственность, и вы должны использовать инструменты, с которыми вам больше всего нравится. Я, например, предпочитаю SimpleTest и обеспокоен рамкой, которая поставляется в комплекте и способствует использованию собственной системы тестирования. Зачем изучать другую единую тестовую систему, когда SimpleTest более чем достаточно?

Обратите внимание, что предоставление единичной тестовой системы и модуля, проверяющего структуру, – это две совершенно разные вещи. Рамки должны быть проверены на единицу, период. Но для этой задачи разработчики фреймворка могут использовать тот инструмент, который они предпочитают больше всего. Они могут даже опрокинуть свои собственные тестовые рамки (кажется, что некоторые люди никогда не учатся и не изобретают колесо). Однако (IMHO) рамочный тест должен храниться отдельно от самой структуры. Его даже не следует включать в рамки tarball, но сохраняться в виде отдельного пакета, интересного только разработчикам структуры.

Просто мой 2c.