Я новичок в веб-программировании, и в настоящее время я изучаю PHP. Я хотел бы знать, когда мне нужно использовать PHP-фреймворк, такой как CakePHP? Что мне предлагают эти и другие подобные PHP-фреймворки? И действительно ли важно использовать каркас, чтобы быть профессионалом?
- И могу ли я создать свой собственный фреймворк, чтобы в него входили понравившиеся мне функции?
php
frameworks
Гома
источник
источник
Ответы:
Когда вы освоитесь с PHP, вы можете начать использовать фреймворк. И вы всегда должны использовать их:
Вы можете создать свой собственный фреймворк, но я бы определенно не рекомендовал его. Это сложно, уже есть много хороших фреймворков, и вряд ли вы найдете недостающую функцию. Кроме того, они часто предоставляют способы добавить свои собственные функции к ним, не делая совершенно новых.
источник
Создайте несколько страниц без фреймворка ... вы по сути начнете писать свой фреймворк методом проб и ошибок. После того, как вы это сделаете, перейдите на фреймворк и наслаждайтесь тем, сколько времени вы экономите. Попытка создать собственную структуру может научить вас некоторым вещам и помочь вам оценить уже существующие платформы.
Когда я впервые попал в PHP, я думал, что фреймворки - это сложная трата времени. Теперь я использую CodeIgniter даже для простых проектов. Чтобы приступить к работе требуется около 1 минуты, у вас уже есть масса отличных библиотек. И, как упоминалось ранее, большинство фреймворков являются расширяемыми, поэтому вы всегда можете добавить любую функциональность, какую захотите.
источник
Как сказал Нифра , начинать использовать каркас можно только тогда, когда вы можете использовать PHP без каркаса (то есть для доступа к базе данных, отправки заголовков и содержимого, обработки строк, манипулирования данными и т. Д.). Что касается ваших вопросов:
Когда мне нужно использовать PHP-фреймворк, такой как CakePHP? Когда ваш проект выходит за рамки нескольких файлов PHP; момент, когда вы начинаете строго разделять логику на отдельные элементы и функциональность модульности / совместного использования (сеансы и т. д.), - это когда вы должны использовать платформу.
Что мне предлагают эти и другие подобные PHP-фреймворки? абстракция; вместо непосредственного взаимодействия с базой данных вы можете использовать объектно-реляционное сопоставление (ORM) для управления структурой и связями между вашими данными в базе данных. Большинство фреймворков на многих языках предоставляют ORM, чтобы упростить взаимодействие с уровнем базы данных вашего приложения. Точно так же платформы часто разделяют уровни реагирования на взаимодействие с пользователем. Наиболее распространенным разделением является парадигма Model View Controller (MVC), которая, если быть кратким, абстрагирует логику базы данных в модель (во многих случаях интерфейс с ORM), обрабатывает запросы и взаимодействует с моделями в контроллере и рендеринг актуального HTML / PDF / изображения / и т. д. в вид. Фреймворки часто предоставляют другие инструменты, такие как маршрутизация (для обеспечения сложной обработки URI запроса (например: отображение запроса)http://example.com/users/1 "для контроллера Users, который затем ищет Модель пользователя с идентификатором 1) и абстракцию сессий и других базовых структур.
И действительно ли важно использовать каркас, чтобы быть профессионалом? Не обязательно; рамки облегчают жизнь; но вам не нужно использовать один, чтобы быть профессионалом. Фреймворки обеспечивают удобную абстракцию и стандартизацию, но в большинстве случаев они не обязательны.
источник
Прочитав некоторые ответы, я хотел бы сначала сказать, что у вас не часто есть выбор, какую платформу вы собираетесь использовать или собираетесь ли вы использовать один или нет (как профессионал). Я не хочу вас запугивать, но вам нужно будет выработать достаточно понимания PHP, чтобы можно было переходить с одного фреймворка на другой, а также использовать более одного фреймворка одновременно.
На это нет универсального ответа. Как профессионал, вам будет поручено решать конкретные проблемы, и это будет решающим фактором, когда и что будет с каждым проектом, особенно если у клиента есть конкретный спрос. Но, вообще говоря, вы всегда будете использовать какую-то форму фреймворка с PHP, если только вы не модифицируете или не расширяете уже существующее приложение, которое имеет свою собственную фреймворк (например, Wordpress или PHPBB).
Как сказал Дирк, они предлагают абстракцию. Это означает, что они принимают общие многоэтапные процедуры и стараются сделать их максимально простыми и оптимизированными. Короче говоря, они пытаются представить решения «просто добавь воды» для решения общих задач.
Вообще говоря, нет, не важно использовать рамки, чтобы быть профессионалом. Но реально, у вас не будет большой карьеры, если вы не знакомы хотя бы с парой общих рамок. PHP без фреймворка похож на C ++ без библиотеки std. Вам это не нужно, и вы на самом деле можете сделать больше без него, так как вы будете напрямую использовать функциональные возможности языка нижнего уровня, но вам потребуется гораздо больше времени, чтобы сделать то же самое.
Да. На самом деле, вы, вероятно, в конечном итоге сделаете это, даже если непреднамеренно. Под этим я не подразумеваю обширную универсальную инфраструктуру, но больше напоминаю набор инструментов с базовыми функциями и сценариями, которые выполняют задачи, которые не являются общими или достаточно общими, чтобы их можно было обрабатывать средней структурой. Мой в основном состоит из различных файловых систем, обработки процессов и битов rex-ex с несколькими различными утилитами curl и stream / socket.
источник
Как правило, от человека, который потратил годы, взламывая мои собственные способы общения с базой данных и общения с онлайн-API, и только сейчас начинаю использовать фреймворки, используйте их, когда вы хотя бы понимаете, что они делают, если это возможно.
Не сразу переходите к RedBean при первой работе с базой данных, сначала работайте с БД вручную. Таким образом, у вас есть полное понимание того, что вы на самом деле выбираете и делаете с БД, что может реально помочь с масштабируемостью. Затем вы также можете создать собственное решение, если используемая среда не выполняет то, что вам нужно.
Как только вы поймете, что происходит, используйте фреймворк! Это делает вещи намного проще. Crazyness с хранением запроса затем цикл над результатами с
mysql_fetch_assoc
все ушли, сводится к одному вызову:$book = R::load( "book", $id )
. Вы будете намного продуктивнее и сможете гораздо легче исправлять будущие ошибки или добавлять будущие функции.источник
Используйте фреймворк, когда вы достаточно хорошо знаете базовые технологии, чтобы знать, что он делает для вас и почему это хорошо (или плохо).
Фреймворк - это своего рода мета-инструмент, который позволяет вам работать с инструментами (языком, базой данных) немного быстрее, не беспокоясь о некоторых деталях того, что вы делаете, и это хорошо, если вы действительно знаете свой инструменты.
То, что вы НЕ хотите, чтобы это произошло, - это то, что вы изучаете структуру вместо инструментов, и становитесь канализованным для определенного способа ведения дел, и в конечном итоге не осваиваете базовые языки и понятия - это должно быть инструмент, а не костыль.
источник
Когда вы обнаруживаете, что делаете одно и то же снова и снова, оглянитесь вокруг и посмотрите, не существует ли фреймворк, который выполняет те же избыточные вещи, которые вы в конечном итоге сделали бы самостоятельно. Не просто используйте рамки из-за обмана. Мне лично нравится CodeIgniter и Rasmus Lerdorf "PHP-фреймворк без фреймворка PHP" http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html
источник
Я бы рекомендовал тщательно продумать, почему вы бы использовали рамки x, y или z. Каждый фреймворк предоставляет не только функциональность, которую вам не нужно реализовывать самостоятельно, но и способ мышления. Просто посмотрите на Spring, JEE, Rails или Django. Четырех фреймворков, достаточных для того, чтобы за короткое время избавиться от веб-приложения.
Но все четверо продвигают свой собственный способ мышления о том, как должны создаваться веб-приложения. Если это не соответствует вашим потребностям или не соответствует вашему вкусу, вам будет нелегко идти дальше.
Это было очень радикальное сравнение, но, возможно, создание небольшой библиотеки лучше соответствует вашим потребностям. Но знание фреймворков определенно поможет вам работать в больших командах или находить новые рабочие места, поскольку это показывает, что вы заинтересованы в разработке программного обеспечения в целом.
источник
Рамки всегда хорошо использовать с самого начала. Это способствует повторному использованию кода, лучшей читаемости и экономит время на разработку.
Я не очень разбираюсь в PHP, но я бы поощрял любое использование фреймворка.
источник