Использовать PHP Framework или нет?[закрыто]
-
03-07-2019 - |
Вопрос
Я начал писать несколько приложений на PHP и постепенно знакомлюсь с этим языком.Кто-то рассказал мне о CakePHP и CodeIgniter.Я хотел лучше понять, как они могут мне помочь и стоит ли тратить время на изучение фреймворка?
Решение
Каковы преимущества использования PHP-фреймворков MVC?
Ну, есть много преимуществ использования PHP-фреймворков, давайте рассмотрим некоторые из основных преимуществ их использования.
<Ол>проверьте статью р>
Другие советы
Моя философия заключается в том, что вы должны использовать что-то, только когда это удовлетворяет потребность, которая у вас есть в настоящее время.
Существует реальная тенденция, особенно в этой области, просто использовать каркас для использования одного или потому, что вы чувствуете, что должны что-то использовать. Я препятствую такой практике. Кроме того, я думаю, что фреймворки имеют наибольшую ценность, когда вы делаете что-то нелегко, поэтому у вас есть хорошее понимание того, какие у вас проблемы, и как фреймворк может помочь вам в этой ситуации . Выбор структуры зависит от ситуации.
Тем не менее, шаблон MVC с веб-приложениями полезен, поэтому, конечно, вам не помешает изучить хотя бы один из них. Однако я бы придерживался довольно минималистской основы. На ум приходит CodeIgniter.
Наконец, другая опасность с фреймворками заключается в том, что они могут быть настолько инвазивными, что вы больше не работаете с PHP, вы делаете CakePHP, Symfony или что-то еще. Это не обязательно проблема, но опасность в том, что он настолько инвазивен, заключается в том, что у вас недостаточно хороших знаний в PHP, и если вы когда-нибудь захотите изменить его, вам будет просто слишком сложно, что вы никогда не сможете это сделать. р>
Одним из замечательных преимуществ PHP-фреймворков является то, что они сводят к минимуму повторное изобретение колеса в большом количестве общих потребностей веб-приложений. Проблемы безопасности, изящная обработка исключений, URL-адреса RESTful и возможность повторного использования кода на вашем сайте - это достаточно универсальные соображения.
Может быть проще ознакомиться с инструментами инфраструктуры, а затем посмотреть, хотите ли вы использовать полную систему MVC, которую она поддерживает. Для этого я бы предложил ознакомиться с Zend Framework. ZF работает как библиотека классов, которые могут быть реализованы индивидуально для конкретных целей - от безопасности до поиска Lucene - но содержат классы, которые при совместном использовании реализуют полностью продуманную парадигму MVC.
я просто хочу рассказать о своем собственном опыте программирования, Я все еще новичок, хотя
<Ол>Это все, чем я могу поделиться с вами сейчас, я не очень хорошо пишу по-английски, извините за это. но дело в том, что я рекомендую вам использовать рамки
Счастливый кодирующий друг.
Я думаю, что это хорошая инвестиция - потратить время на изучение фреймворка PHP. Во-первых, он научит вас, как кто-то решает проблему архитектуры фреймворка, как организовать ваш PHP-код и как обрабатывать такие вещи, как сеансы и доступ к базе данных ... и т. Д.
По большей части, если вы серьезно относитесь к разработке веб-приложений, вам нужно будет использовать какой-то фреймворк, а не писать свой собственный фреймворк с нуля. Р>
Некоторые причины, по которым вам НЕ следует писать собственную структуру:
<Ол>Так что да, изучите пару фреймворков и найдите тот, который подходит вам лучше всего!
Diclaimer: Я НЕ программист php, и я НИКОГДА не писал php-приложения. С другой стороны, я установил, настроил и использовал много php cmss для своего сайта и корзин.
По моему мнению, php страдает от серьезных проблем. Самым большим из них является то, что & framework; # 8221; кажется иностранным словом почти для всех больших и даже успешных проектов. Php-код быстро превращается в салат для спагетти: спагетти html смешивается с кодом спагетти и спагетти sql. Р>
osCommerce, одна из самых успешных корзин для покупок, в большинстве своем не работает. Это относится и к большинству php проектов. Р>
Должны ли вы использовать фреймворк для своего проекта, я говорю да! Определенно! Независимо от того, насколько велик ваш проект, использование веб-фреймворка поможет вам навести порядок в коде и написать основной код. Р>
Это также влияет на ваш стиль программирования, даже если вы не используете каркас.
Использование MVC-фреймворка облегчит вашу разработку. Особенно приложения, связанные с базой данных. Он предоставляет вам кристально чистую структуру папок и множество библиотек кода. Я бы предложил вам начать с CodeIgniter.
Фреймворки хороши, когда у вас есть команда разработчиков, работающих над одним проектом. Контроллер MVC прекрасно интегрирует дизайнер + программист. Тем не менее, создание "фреймворк-подобный" элементы и "изобретать заново"; колесо не такая плохая идея. Если вы работаете над огромным проектом, лучше разбираться с кодом и настраивать ВСЕ, чтобы оно соответствовало вашим потребностям. Он станет более сильным продуктом, поскольку будет полностью разработан для проекта.
Следующее сообщение является ответом на тему, которая была немедленно закрыта, когда я писал ответ на сообщение RenderIn по адресу: https://stackoverflow.com/questions/3265509/what-are-the-benefits-of-using-a-programming-framework .Тема была закрыта, а в комментариях была размещена ссылка, ведущая сюда, поэтому я попытаюсь ответить на его вопрос здесь.В кавычках ниже указано, что я собирался представить:
«Разрешите порекомендовать Joomla!вам и вашей организации.У моего последнего работодателя мне пришлось освоить PHP (не имея предыдущего опыта работы с ним), и примерно через полтора месяца ручного написания PHP мне было поручено написать код для Joomla!компонент, который будет предоставлять пользователям видео.Мне также пришлось создать серверную часть, которая позволила бы нетехническим администраторам классифицировать, редактировать, удалять и т. д. видео, а также предоставлять для них миниатюры и т. д.
Теперь, чтобы получить рабочий прототип для этого, потребовалось около двух месяцев (в то время я был стажером и работал только 20-24 часа в неделю, поэтому, если у вас есть небольшой опыт PHP, а также опыт работы с методологией разработки MVC , вы, вероятно, могли бы создать рабочий прототип НАМНОГО быстрее, чем я)».
Теперь в ответ на ОП ЭТОЙ ветки:Потратить время на изучение фреймворка определенно стоит (я не видел упоминания об этом здесь до моего поста, поэтому повторю еще раз:в качестве PHP-фреймворка я бы рекомендовал Joomla!).
Некоторые преимущества изучения фреймворка (с открытым исходным кодом, такого как Joomla!):
- Огромное сообщество людей, которые могут помочь ответить на ваши вопросы (помимо stackoverflow;ржу не могу)
- Доступ ко ВСЕМ исходному коду, поэтому вы можете настроить его по своему усмотрению.
- Множество бесплатных (и платных) сторонних плагинов для улучшения функциональности.
- Множество обучающих программ.
- Фреймворки автоматически выполняют множество повседневных задач.
Что касается пункта четыре:Джумла!позаботится за вас о таких вещах, как управление подключением к базе данных и тому подобное, так что вам не придется создавать все свои собственные функции для подключения к базе данных MySQL или возврата различных типов результатов из базы данных (например,одна запись, первый результат первой записи, список записей и т. д.), вы просто звоните им.API Joomla! открыто доступен в Интернете на их сайте: http://api.joomla.org/
В любом случае, надеюсь, это поможет RenderIn и всем, кто интересуется фреймворками (особенно связанными с PHP).
Фреймворк для меня - это хороший инструмент для ускорения и экономии времени ради того, что вы просто не хотите тратить время на его повторение, а не потому, что вы хотите сэкономить время, которого у вас нет не знаю, сколько это стоит. Вы заплатите за это, если сделаете это.
Для меня фреймворк хорош, если вы уже являетесь опытным программистом, и у вас есть ощущение или ощущение, что вы знаете, как фреймворк примерно работает ниже (просто не совсем точно), и можете с уверенностью сказать «да», если я хочу, могу пересоздать сортировку, как упрощение этой структуры. Тогда фреймворк - это скорый автомобиль для вас, и вам не будет больно, если вы захотите сделать что-то, к чему фреймворк не готов, или что-то необычное или другая странная вещь.
Если вы этого не сделаете, вам лучше попытаться решить свою проблему с помощью простого старого PHP, испытать боль в игре на своем пальце и узнать сначала о хорошей практике программирования, парадигме и паттерне. В противном случае вы будете одним из тех новичков, присоединившихся к большой команде, и их первый проект работает над проектом с очень мощной структурой, которая требует очень меньшего количества кода и больше при настройке и исправлении. Вы никогда не будете хорошим программистом и не сможете создать хорошее PHP-приложение с нуля.
Как, если вы находитесь в организации, которая использует сложную структуру?
Потратьте немного своего собственного времени, чтобы решить эту проблему на старом, в данном случае, PHP, пока не дойдете до того, что я упомянул выше. Иначе, вы никогда не почувствуете себя уверенным в программировании и продолжаете говорить себе: «Я просто знаю, что именно эти шаги являются способом сделать это». Это не программирование (немного экстремально :)). Р>
Сложный или простой каркас
Некоторые из фреймворков, хотя и используются многими, просто ошеломляют. Слишком много слоев, которые вы потеряете. Эти фреймворки обычно предназначены для чего-то, что является стереотипом, большим количеством конфигурационных файлов, и если вы хотите сделать что-то необычное, вам лучше быть разработчиком фреймворка (немного преувеличено здесь :)). Я не хочу упоминать здесь ни одного имени, но вы узнаете его, когда встретите.
CodeIgniter является продуктом команды EllisLab, и их основным продуктом является Expression Engine, разработанный с CodeIgniter.
Через некоторое время использования CI я обнаружил, что использование Yii Framework более удобно. У него много расширений. И не так сложно разобраться с хорошими документами.
CakePHP, я думаю, близок к CodeIgniter.
Я бы настоятельно рекомендовал использовать фреймворк для чего-то большего, чем простой скрипт. Иногда это может показаться излишним, но я бы сказал, что это не так. У меня было несколько случаев, когда я думал, что мне это не нужно (простое приложение, базовый CRUD в таблицах по 3 дБ).
Вскоре после этого я обнаружил, что выполняю ручную mysql_escape_string, фильтрацию XSS и так далее. С тех пор я пишу не-каркасный код только тогда, когда думаю, что установка займет больше, чем рабочий код. И это случается очень редко.
Если бы мне порекомендовали PHP-фреймворк, мне пришлось бы использовать CodeIgniter или Yii Framework, в зависимости от сложности вашего проекта.