Простой в использовании/изучении фреймворк PHP? [закрытый]
Мне нужно построить php-приложение, и я думал об использовании фреймворка (никогда не использовал его раньше). Я просматривал некоторые из них, но большинство из них кажется довольно сложным, мне очень понравилось то, что я увидел о Symfony, но похоже, что мне придется потратить около месяца, пока я действительно не пойму, как его использовать, и за один месяц я мог бы кодировать приложение, которое я имею в виду, 5 раз без фреймворка. Но я хочу использовать его для "стандартизации" моего кода и предотвращения ошибок.
Так что мне было интересно, если кто-то вы можете поделиться со мной, какие PHP-фреймворки, по вашему мнению, легче использовать.
Мое приложение будет использовать mysql, и у него будет своего рода "поисковая система" для поиска данных, которые будут заполнены в базе данных с помощью нескольких "скриптов скребка" (которые я также хочу кодировать с помощью фреймворка).
9 ответов:
Есть много вопросов, отвечающих на этот вопрос здесь, на StackOverflow, и я недавно был на вашем месте, исследуя множество различных фреймворков, поскольку я также хочу стандартизировать свой код.
В итоге я выбрал Codeigniter, потому что хотел что-то с хорошей документацией, и это было очень легко (легче == легче понять IMO), и что-то, что не было слишком строгим. В Codeigniter, если вы действительно хотите, вы можете просто кодировать обычный PHP, и он позволяет вам это делать. Мне нравится это вариант, потому что если я действительно застреваю на чем-то, я просто кодирую его в raw PHP так, как я знаю, что могу. Я использую Codeigniter всего несколько недель, но кривая обучения не слишком сложна, и это мой первый фреймворк, который я использовал.
Прочитайте некоторые из предыдущих обсуждений и обратите внимание на простоту использования советов:
- https://stackoverflow.com/questions/2648/what-php-framework-would-you-choose-for-a-new-application-and-why
- https://stackoverflow.com/questions/249984/php-framework-decision-analysis-paralysis
- Почему я должен использовать популярный рамки?
- https://stackoverflow.com/questions/717836/kohana-or-codeigniter
Если вы хотите что-то легкое для начала, вы можете заглянуть в минимальный рамки:
- https://stackoverflow.com/questions/694929/whats-your-no-framework-php-framework
- https://stackoverflow.com/questions/141945/lightest-possible-php-mvc
- https://stackoverflow.com/questions/3023818/any-procedural-non-oo-php-framework
Но на самом деле большая дюжина рекомендуется, если вы хотите хорошую документацию. Symfony и CakePHP сложны, CodeIgniter и новая вилка Kohana подходят для начинающих. Хотя есть еще много вариантов на выбор. Выберите хороший API и, возможно, ищите тот, который объясняет разницу между MVC и MVP. Также для длинного списка: http://matrix.include-once.org/framework/
Моим первым выбором будет cakePHP. Легко учиться, отличная документация, api и несколько хороших книг:
- начало CakePHP: от новичка до профессионала-Дэвид Голдинг (хорошо; начните с этого!)
- Super Awesome Advanced CakePHP Tips - Мэтт Карри (хороший и бесплатный : -))
- рефакторинг устаревших приложений с использованием CakePHP - Chris Hartjes (еще не прочитано)
- Практические Проекты CakePHP-Кай Чан, Джон Омокор & Ричард Миллер (не столь полезный)
CakePHP - лучшее решение с небольшой кривой обучения.
Я был на твоем месте всего 2 года назад. Я лично решил использоватьZend Framework . Важно понимать, что ZF строится теми же ребятами, которые поддерживают и улучшают сам PHP! Просто это придает ему гораздо больше достоверности.
При выборе фреймворка следует учитывать следующее:
Размер и качество сообщества-Будучи одним из наиболее широко используемых фреймворков PHP, Zend Framework (он же ZF) имеет самое большое сообщество фреймворков PHP; следовательно, большинство проблем, с которыми вы столкнетесь, уже будут решены. Есть фреймворки, которые поддерживаются всего несколькими разработчиками, и если они перестанут работать над этим, вы застряли с последней версией фреймворка. Вряд ли это произойдет с ZF.
Документация и удобный для начинающих-документы ZF довольно хороши, полны примеров и удобны для начинающих. Есть также тонна учебников и [краткое руководство] [2]. Это очень легко начать вверх по новому приложению ZF.
Инвестиции-конечно, когда-нибудь вам придется инвестировать, изучая, как это работает, но в мире разработки программного обеспечения все именно так. Вы должны понять [ООП][3] и [MVC] [4] Перед рукой, а также. Многие люди не понимают, что использование фреймворка для разработки процедурного кода (вместо ООП) разрушает цель... использование фреймворка MVC/OOP! Поэтому важно понять и освоить эти концепции, чтобы разработать наилучший код. И под лучшим кодом я имею в виду а) код, который работает B) код, который легко и быстро понять и поддерживать.
Эта инвестиция того стоит, так как она резко возрастет. а) скорость развития б) скорость отладки и обслуживания.
Кроме того, воспользуйтесь этим моментом в своей карьере программиста, чтобы также придерживаться других общих рекомендаций (Если вы еще этого не сделали), используя: а) модульные тесты-невероятно легко интегрируются в ZF. Посмотри на [тестирование Развитие] [5] также. б) IDE-VIM, [Netbeans][6] и т. д c) [шаблоны проектирования][7] d) управление версиями - [Mercurial][8], Git, SVN и т. д e) наконец, держите себя в курсе событий, [следуя за тем, что происходит в мире PHP][9].
Вы будете благодарить себя в ближайшем будущем! Я знаю, что это так.
Поскольку никто не голосовал за Symfony, здесь я буду, И вот почему. Есть два типа фреймворков, ну целый диапазон на самом деле, но в области PHP/MVC, где мы находимся в этой теме, есть фреймворки клея и полного стека.
Zend и CodeIgniter-это клей, а Symfony и Cake-это полный набор.
Клей-это те, где вы можете выбрать, какие компоненты вы можете использовать и сколько "стандартного" кода Вы можете использовать. Они, как правило, имеют более мягкую кривую обучения, как вы можете выберите биты, которые вам нравятся, и заполните более сложные биты кодом, который вы знаете.
FullStack означает, что вам нужно использовать лот, и поэтому кривая обучения может быть довольно крутой. Также с FullStack может быть тенденция сопротивляться тому, как что-то реализуется, а не просто принимать и течь с этим.
Исходя из предыстории write everything myself, Я изначально отдавал предпочтение клею, но теперь перешел на FullStack, используя Symfony 1.4 и 2, а также Sinatra и Padrino. Дополнительная скорость и мощность, которую дают фулстаки, - это не то, от чего я хотел бы отказаться.
Одним из недостатков CI является то, что он построен для совместимости с php4 и поэтому страдает в ряде структурных способов, когда вы приходите, чтобы продвинуть фреймворк, Kohana-это вилка, которая решает эту проблему. И мне не нравится Zend, потому что есть так много способов сделать то же самое, что через некоторое время рамки кажутся почти неуместными (извините за личную тираду)
В конце дня использование фреймворка это хорошо, потому что это добавляет структуру и может быть большим подспорьем в обучении, и тот, чтобы выбрать тот, в котором вы чувствуете себя комфортно и продуктивно.
Есть много фреймворков и несколько действительно крутых фреймворков. После того, как вы испробовали так много из них, я думаю, что вы не должны начинать использовать любой из них, прежде чем найти наиболее подходящий для ваших нужд. Вы можете найти любой другой после выбора одного, так что не действуйте быстро, прежде чем выбрать правильный. Перед созданием приложения с фреймворком следует сделать упражнения. Для меня я начал с CodeIgniter создал одно приложение и оставил второе в середине, затем перешел к Kohana и начал второе применение согласно потребностям.
CodeIgniter - это тот, который я предпочитаю
Структура должна иметь мало обучения и легко расширяться. Я использую http://sourceforge.net/projects/naanalframework/ для всех моих проектов. Там нет установки. Просто надо указать рамки наанала.php в индексе вашего приложения.php и запустить его. Структура будет направлять вас, что делать. Для начинающих этот фреймворк очень полезен для разработки PHP-приложений. Образец приложения также доступен по адресу http://sourceforge.net/projects/naanalframework/files/sample%20applications/wordpress_plugin_builder.zip/download