Использовать фреймворк PHP или нет? [закрытый]

Я начал писать несколько приложений на PHP, и я становлюсь более знакомым с языком. Кто-то рассказал мне о CakePHP и CodeIgniter. Я хотел лучше понять, как они могут мне помочь, и стоит ли тратить время на изучение структуры?

12 ответов


каковы преимущества использования фреймворков MVC PHP ?

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

  1. эти фреймворки PHP следуют некоторому шаблону дизайна, поэтому при использовании фреймворка вы должны следовать их соглашению о кодировании, что делает ваш код чистым и расширяемым для будущих целей.
  2. популярные фреймворки PHP, такие как CakePHP, CodeIgniter, Zend Framework, Symfony, следуют Шаблон проектирования Model View Controller (MVC), который отделяет бизнес-логику от пользовательского интерфейса, также делает код более чистым и расширяемым.
  3. как все могут догадаться, эти рамки содержат много библиотек, чтобы сделать вашу работу проще. Например: для проверки формы вам не нужно писать столько кода, сколько вам нужно сделать в обычном сценарии кодирования (без использования фреймворка), для этого обычно достаточно нескольких строк кода, вызывающего библиотеку.
  4. во время работы над большой проект в команде, фреймворк MVC PHP будет отличным инструментом для разработки, так как вы можете назначить разработчика для разработки одной части модуля для разработчика, и интеграция будет довольно простой из этих разработанных модулей на конечном уровне.
  5. эти фреймворки MVC действительно помогут вам быстро разработать проект, если вы хорошо знаете фреймворк, вы никогда не будете беспокоиться о сроке проекта.
  6. большинство из этих фреймворков MVC используют четкий url-подход, делающий ваш веб-проект SEO дружественных.

Регистрация статьи


моя философия заключается в том, что вы должны использовать что-то только тогда, когда это решает потребность, которая у вас есть в настоящее время.

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

что все сказанное, шаблон MVC с веб-приложениями полезен, поэтому вам, конечно, не повредит узнать хотя бы один. Однако я бы придерживался довольно минималистской структуры. CodeIgniter приходит на ум здесь.

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


одним из больших преимуществ фреймворков PHP является то, что они минимизируют изобретение колеса в большом количестве общих потребностей веб-приложений. Проблемы безопасности, изящная обработка исключений, URL-адреса RESTful и повторное использование кода на вашем сайте являются довольно универсальными соображениями.

может быть проще ознакомиться с инструментами фреймворка, а затем посмотреть, хотите ли вы взять на себя полную систему MVC, которую он поддерживает. Для этого я предлагаю ознакомиться с в Zend фреймворк. ZF работает как библиотека классов, которые могут быть реализованы индивидуально для конкретных целей-от безопасности до поиска Lucene-но содержит классы, которые при совместном использовании реализуют полностью воплощенную парадигму MVC.


Я просто хочу рассказать о своем опыте в программировании, Я все еще новичок, хотя

  1. во-первых, используя фреймворк, вы привыкнете к их стилю/правилу кодирования, что хорошо, потому что большинство фреймворков глубоко задумываются о том, как они пишут свой код. короче говоря, я получаю лучший стиль и более чистый код
  2. обычно фреймворк поставляется со многими арсеналами (плагинами и библиотеками), которые вы можете найти в интернете, это сократит ваше время кодирования, сократит потерянное время. Короче говоря, вы можете сделать свое собственное драгоценное время, думая о бизнес-процессе
  3. С помощью open source framework есть другой программист, который уже знает и, вероятно, освоил фреймворк, тогда вы можете легко сотрудничать с другими.
  4. по правде говоря, я не очень хорошо организованный программист, но это было до того, как я использовал некоторые рамки с открытым исходным кодом. возможно, как и я, вы станете более организованными

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

счастливый друг кодирования.


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

по большей части, если вы серьезно относитесь к разработке веб-приложений, вы должны использовать фреймворк какой-то, а не писать свой собственный фреймворк с нуля.

некоторые причины, по которым вы не должны писать свой собственный фреймворк:

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

Так что да, выучить пару рамки и найти тот, который подходит вам лучше всего!


Diclaimer: я не программист php, и я никогда не писал приложение php. С другой стороны, я установил, настроил и использовал много php cmss для моего сайта и торговых тележек.

на мой взгляд php страдает от серьезных проблем. Самое большое - это то, что" фреймворк " кажется иностранным словом почти для всех крупных и даже успешных проектов. Php-код имеет тенденцию быстро становиться салатом спагетти: спагетти html смешиваются с кодом спагетти и sql спагетти.

osCommerce, один из самых успешных корзина когда-либо, в основном unmaintable. Это относится и к большому большинству проектов php.

стоит ли использовать фреймворк для проекта, я говорю Да! Определенно! Независимо от того, насколько велик ваш проект, использование веб-фреймворка поможет вам очистить код и написать код maintable.

Это также влияет на ваш стиль программирования, даже если вы не используете фреймворк.


использование MVC-framework сделает вашу разработку более простой. Особенно приложения, связанные с базой данных. Он предоставляет вам кристально чистую структуру папок и множество библиотек кода. Я бы предложил вам начать с CodeIgniter.


фреймворки великолепны, когда у вас есть команда разработчиков, работающих над тем же проектом. Контроллер MVC прекрасно интегрирует designer + programmer. Однако создание "рамочных" элементов и" изобретение " колеса-не такая уж плохая идея. Если вы работаете над огромным проектом, лучше спуститься и испачкать свой код и настроить все в соответствии с вашими потребностями. Это станет более сильным продуктом, поскольку он будет полностью разработан для проекта.


следующий пост является ответом на поток, который был немедленно закрыт, когда я писал свой ответ на сообщение рендеринга по адресу: https://stackoverflow.com/questions/3265509/what-are-the-benefits-of-using-a-programming-framework . Нить была закрыта, и в комментариях была размещена ссылка, направляющая его сюда, поэтому я попытаюсь ответить на его вопрос здесь. В кавычках ниже то, что я собирался представить:

"позвольте мне порекомендовать Joomla! тебе и твоим ... организация. На моем последнем работодателе мне пришлось забрать PHP (не имея никакого опыта работы с ним), и примерно через полтора месяца ручного ручного кодирования PHP мне было поручено кодировать Joomla! компонент, который будет обслуживать видео для пользователей. Мне также пришлось создать бэкэнд, который позволил бы администраторам, не являющимся техническими, классифицировать, редактировать, удалять и т. д., видео, а также предоставляют миниатюры для них и т. д.

теперь, чтобы получить рабочий прототип для этого, потребовалось около двух месяцев (I был стажером в то время и работал только 20-24 часа в неделю, поэтому, если у вас есть довольно много опыта PHP, а также опыт работы с методологией разработки MVC, вы, вероятно, могли бы получить рабочий прототип намного быстрее, чем я)."

теперь в ответ на OP этого потока: Тратить время на изучение фреймворка определенно стоит (я не видел его здесь до моего сообщения, поэтому я скажу это снова: для PHP-фреймворка я бы рекомендовал На Joomla!).

некоторые из преимуществ изучения фреймворка (с открытым исходным кодом, как Joomla!):

  • огромное сообщество людей, которые могут помочь ответить на ваши вопросы (кроме stackoverflow; lol)
  • доступ ко всему исходному коду, так что вы можете настроить его, как вы хотите.
  • множество бесплатных (и платных) сторонних плагинов для расширения функциональности.
  • много самоучителей.
  • фреймворки позаботятся о выполнении много обыденных задач автоматически.

в отношении пули четыре: Joomla! заботится о вещах для вас, таких как управление подключением к базе данных и так, чтобы вам не пришлось создавать все свои собственные пользовательские функции для подключения к базе данных MySQL или возвращать различные типы результатов базы данных (например, одна запись, первый результат первой записи, список записей и т. д.), вы просто размещаете звонки на их. На Joomla!'S API открыто доступен в интернете на своем сайте: http://api.joomla.org/

в любом случае, надеюсь, это поможет рендерингу и всем, кто интересуется фреймворками (особенно связанными с PHP).


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

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

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

как, если вы находитесь в организации, которая использует сложную структуру?

потратьте некоторое время, чтобы решить проблему в обычном старом PHP в этом случае, пока вы не получите прикосновение к тому, что я упомянутый выше. В противном случае, вы никогда не найдете свою уверенность в программировании и продолжаете говорить себе: "я просто знаю, что это шаги, это способ сделать это". Это не Программирование (немного экстремально :)) .

сложные и простые рамки

некоторые из рамок, хотя и используются многими, просто подавляющие. Слишком много слоев, которые вы потеряете. Эти рамки обычно предназначены для чего-то, что является стереотипом, много файлов конфигурации и если вы хотите сделать что-то необычное, вам лучше быть автором фреймворка(немного преувеличено здесь :)). Я не хочу упоминать здесь ни одного имени, но вы узнаете его, когда встретите.


CodeIgniter является продуктом команды EllisLab, и их основным продуктом является Expression Engine, который разработан с CodeIgniter.

через некоторое время использования CI я обнаружил, что использование Yii Framework более удобно. Он имеет много расширений. И не так уж сложно разобраться с хорошими докторами.

CakePHP, я думаю, близко к CodeIgniter.


Я настоятельно рекомендую использовать фреймворк для чего-либо большего, чем простой скрипт. Иногда это может показаться излишним, но я бы сказал, что это не так. У меня было несколько случаев, когда я думал, что мне это не нужно (простое приложение, базовый CRUD в таблицах 3 db).

вскоре после этого я обнаружил, что делаю ручную фильтрацию mysql_escape_string, XSS и так далее. С тех пор я пишу код без фреймворка только тогда, когда думаю, что настройка займет больше, чем рабочий код. И что очень бывает редко.

Если бы мне пришлось рекомендовать фреймворк PHP, мне пришлось бы пойти с Codeigniter или Yii Framework, в зависимости от того, насколько сложен ваш проект.