Когда фреймворки используются в PHP или любом другом языке? - PullRequest
3 голосов
/ 23 марта 2011

Когда у нас возникает необходимость использования фреймворков в PHP. Я слышал о Zend Framework и Symfony. Я читал о них, но до сих пор не понял, почему мы используем фреймворки в разработке программного обеспечения.

Ответы [ 4 ]

10 голосов
/ 23 марта 2011

Фреймворки часто предоставляют вам код базовой платы, который вам пришлось бы использовать в противном случае, например: управление сеансами, шаблоны, доступ к базе данных и т. Д.

С точки зрения правильной разработки программного обеспечения, использование этих структур, как правило, способствует правильному проектированию с помощью таких шаблонов, как MVC (Модель, Представление, Контроллер). Используя этот шаблон, вы можете увеличить возможность повторного использования кода, отделение концерна и т. д.

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

Для контроллеров эти платформы имеют тенденцию предоставлять какое-то отображение URL. Примером может быть domain.com/posts/edit/5. Затем фреймворк проанализирует этот URL и вызовет контроллер «posts», метод «edit» и передаст идентификатор 5. Как вы можете видеть, если бы вы не использовали фреймворк, вам пришлось бы написать все это кодируйте себя, что увеличит время кодирования и увеличит вероятность ошибок.

Что касается представлений, то часто используются системы шаблонов, помогающие уменьшить количество html, css, javascript и т. Д., Которые вы пишете. Мало того, они также обеспечивают структуру для ваших взглядов. Другими словами, они помогают вам размещать ваши представления в каталогах / местах, которые имеют логический смысл (с точки зрения возможности повторного использования, простоты использования и т. Д.).

Резюме:

Благодаря всем этим функциям вы можете видеть, что это не только уменьшит количество ошибок / ошибок в вашей системе, но и уменьшит время разработки.

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

Некоторые популярные PHP-фреймворки:

CodeIgniter

CakePHP

Zend Framework

Symfony

Руководства по началу работы:

CodeIgniter

CakePHP

Zend Framework

Symfony

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

Если вы хотите провести собственное исследование (что вам следует!), Вот таблица сравнения всех популярных PHP-фреймворков:

http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks#PHP_2

2 голосов
/ 23 марта 2011

Каркасы обычно используются для ускорения разработки проекта.Представьте себе набор дополнительных новых функций, которые помогут вам с такими вещами, как вход в систему, генерация страниц, управление базой данных и т. Д. В дополнение к основным функциям php. В основном фреймворки созданы для того, чтобы сэкономить время и прекратить изобретать велосипед каждый раз, когда вы создаете новый сайт / и т.д ...

1 голос
/ 23 марта 2011

Я использовал CodeIgniter для создания нескольких веб-сайтов и веб-приложений.

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

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

Много лет назад я использовал Dreamweaver от Macromedia со сторонним расширением для создания своих веб-приложений. С тех пор Dreamweaver принадлежит Adobe, а стороннее расширение не продается, поэтому у меня есть устаревший код без поддержки. Для меня беспорядок в моих рыночных силах дал мне стимул искать структуру, которая была бы «независимой от рабочего стола».

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

0 голосов
/ 23 марта 2011

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

Таким образом, соглашение о присвоении имен для классов и объектов и структур, структура файлов и каталогов, расположение стороннего кода, система шаблонов, локализация / интернационализация и т. Д. В хорошо спроектированной (и зрелой) структуре будут хорошо определяется и доступен через стороннюю или поддерживаемую сообществом документацию.

...