| PHP не возник просто так, он построен на базе движка Zend. Т.е. существует некое ПО, которое позволяет создавать переносимые из одной операционной системы в другую языки программирования. Вот если Visual Studio C++ и GCC - это две совершенно различные реализации языка, то Zend решает другую задачу, как бы в рамках одной реализации переносить язык с одной платформы на другую. Понятное дело, что все языки, которые будут построены на Zend мягко говоря будут напоминать PHP. Однако, суть не в этом, эта преамбула нужна для того, чтобы объяснить чем занимается Zend. Она фактически создала низкоуровневую среду, которая позволила создать портируемый язык программирования (PHP) и писать для него расширения, которые регулярно вливаются в сам язык.
Понятное дело, что влияние на язык у них колоссальное - это черепаха, на которой живет мир PHP. Языки и их разработчики тоже живут не в вакууме, на них влияют другие популярные языки и технологии. Видят они STL - стандартную библиотеку C++, и тут же реализуют SPL - не смотри, что таких проблем, как в C++ в PHP нет как класса - библиотека есть, ей никто не пользуется, но она имеет место быть. Схожая ситуация с FrameWork, это вообще говоря отсылка к MFC. Вот есть такая жуткая проблема, как WinAPI, который написан на C и без классов (мало ли кому какой язык в голову придет использовать для написания программ - тот же Pascal). Сложные и иерархические программы под Windows очень здорово писать именно с использованием классов на C++. Вот эта прослойка между Windows API и классами, а может даже заготовкой для приложения и называется FrameWork-ом, это может быть MFC, VCL или что-то менее известное, суть одна, объектно-ориентированная библиотека-оболочка над базовыми возможностями. В случае MFC, еще и реализующая паттерн Model-View-Controller (ну там класс документа, класс представления, класс приложения). Оно понятно, когда вам то Блокнот нужно написать, то Word, то Excel, то Visual Studio - т.е. куда не плюнь одни редакторы и их нужно много, поэтому готовый FrameWork, очень нужен, его даже FrameWork-ом то не очень называют, просто MFC и MFC - куда вы денетесь, либо сами такую же библиотеку разработаете (мы, кстати, это сейчас делаем :), либо будете использовать готовую. Ну вот Zend FrameWork - тоже самое, только для PHP - т.е. надстройка для решения абстрактных задач уже не над низкоуровневой библиотекой, а над самим PHP: "Мы считаем, что приложения на PHP лучше разрабатывать вот так. Любое приложение мы начинаем с такого вот каркаса."
Хотя тут терминология MVC не удобна и лучше говорить о разделении текста и кода, данных и кода, а не о каких-то контроллерах которые то в базе данных оказываются, то в PHP-прилжении, а то и вовсе в JS-библиотеку откочуют. В MFC один язык, в Web-приложении языков много. Да идеи MVC полезны и нужны, особенно в больших приложениях... только вот подходит ли PHP для больших приложений? Или с его помощью проще делать маленькие? А если и делать большие, то нужен ли для этого чужой FrameWork? Мы вон для Windows на C++-то свой пишем (и это не мы одни - редакторы сегодня уже мало кому нужны), когда что-то более или менее серьезное потребовалось, а не спущенная сверху архитектура, а тут распределенное Web-приложение, на множестве языков и использующее множество технологий... | |