Всем прекрасного настроения! После примерну 2х лет работы исключительно с j2se,j2ee возникла необходимость доработать ресурс написанный на php. В силу похожести всех языков сам php вопроссов особо не вызывает если глубоко не копать). Для серьезной разработки нужен серьезный подход, я задумался об архитектуре приложения. Как и положено для web на php полно реализаций mvc, есть как понял сложная и еще слишком сырая ORM аналог Hibernate( как понял его имеет смысл использовать только в достаточно дорогих проектах). Дальше понадобился общий фреймвор разработки, который я надеялся найти в Zend framework, но с ним вышла заминка в сложности работать с реляционными данными т.е уровень модели приложения разрабатывать на основе Zend мне показалось слишком сложным и сырым. По этому пошел копать дальше, пришел к выводу что при небольшой команде разработчиков без исползования готовой crm окажется достаточно сложно. На этот вопросс вечный друг гугль выдал в ответ пару популярный опенсурсов. Я решил остановиться на joomla, каких то существенных минусов в ней не нашел по сравнению с другими. А вот скорее инстинктивно общая модель приложения показалась достаточно интересной. Выкачав все существующие псевдо биплатные доки: 07.07.2008 11:46 4 280 249 joomla_15_quickstart.pdf 02.12.2007 16:44 13 980 373 Wrox.Professional.Joomla.Oct.2007.pdf 16.07.2007 14:57 6 642 329 joomla_user_manual_russian.pdf 16.07.2008 11:33 5 123 extension.pdf 16.07.2008 13:14 3 533 090 Learning.Joomla.Extension.Development.May.2007.pdf По ним и исходникам нарисовалась картина как создавать компоненты и осуществлять их позиционирование. Потом столкнулся с печальным фактом который постоянно есть в php. Большинство компонент не соотвтествуют стандарту MVC. Многие компоненты выполнены вообще кустарным способом, когда мыслей про обьектную модель даже не существует. Так же физическая логика кода перемешена с прикладной это меня просто убило. В связи с чем вторая половина пятницы была грустной. По работе со стандартными визардами из пакета joomla JHTML все понятно. Для меня остался не понятным вопросс: 1. Какими компонентами вы пользуетесь для отображения таблиц с авто сортировкой пажингом и фильтром( каждый раз делать foreach мне показалось как минимум мерзким), реализация в joomla оставляет желать лучшего. Сейчас смотрю альтернативу из ajax. Но в этом случае страничка будет весить в 10 раз больше, а так же необходим включенный javaScript, что опять же нежелательно. 2. Какими визуальными компонентами вы пользуетесь для осуществления рендоринга визардов на php,ajax,swf ? Пожалуйста напишите о своем взгляде на общую картину программирования на php с использованием готовых компонентов. Так же интересны отзывы о компонентах котороые на ваш взгляд просто "супер пупер"? спасибо за вниманию и прибудет с вами сила коллеги...
Просто при работе с PHP никто не пользуется визуальными компонентами. Ибо он не компилируемый, а интерпретируемый, и это недопустимое расточительство ресурсов. Если вам нужен хороший монолитный фрейворк, особенно после Hibernate, советую глядеть на Symfony
Говоря визуальные компоненты я подразумеваю не среду IDE в которой сразу видно изменение интерфейса. А создание странички используя компоненты. Т.е по моей логики как все должно быть грамотно сделано? 1. контроллер хватает запрос 2. инициализирует модель данных и создает представление 3. View создает визуальные компоненты типа lable и заполняет их данными согласно модели созданной в контроллере. 4. ViewTemplate получает визуальные компоненты из View и создает представление. Сам все начал потому что при таком подходе все получается замечательно и красиво. Но есть одно но захотел я допусти отобразить сортируемую таблицу с пейджингом. Естественно стал искать готовый класс php который можно использовать в пунктах 3-4. Но подобного не нашел. Например в joomla где казалось бы все эти компоненты реализованы. Логика создания таблицы с пейджингом, сортировкой и фильтром мне до конца не понятна.(( Может кто то в этом помочь???
Ок Олег допустим временно примем ваше утверждение. Тогда у меня другой вопросс. Можно ли на php код и архитектуру красиво организовать? Чтобы было понятно и удобно рефакторить, чтобы разные типы логики не мешались друг с другом? Может вы литературу подходящую встречали может совет какой то можете дать?
Симфони посмотрели? Архитектуру всегда можно красиво организовать. Но это скорее к Sergey89, он у нас любитель этой темы )
Дак тут от языка сильно не зависит Если проектировать умеете, то и на PHP архитектуру красивую организуете. А литература классическая. Фаулер, Гамма, Бек. Касательно вэба можно почитать P of EAA. Думаю вы и сами знакомы с их трудами.
С классикой по архитектуре поняетно). Я похоже не могу проблему правильно сформулировать. Мне нужен именно компонентный подход, причем чтобы для каждого уровня были свои компоненты. Сегодня посмотрю symfony с первого взгляда эквивалент Zend.
А потом, на своём форуме явашников будет рассказывать какое php говно на примере жумлы. Я ненавижу тебя. Заранее, ага. Посмотри в сторону Drupal - он и CMS (как joomla), и фрэймворк (как ZF). Плюс у "Друпала" куча готовых решений.
Друг мой леха))). 1. Язык и софт на нем написанный разные вещи)? 2. За откровенное признание в любви польщен. 3. Рассказываю я обычно только об обьективных не достатках)), можно конечно приплести субьективных субьектов 4. В jumla действительно по коду многое не понравилось если хочешь могу написать по сути. 5. За Drupal спасибо тоже посмотрю, дажь на открытие игр забью). Уважаемые себя люди прозьба в топике писать по теме, для остальных есть флудильня и приват. Тема не исчерпана так что продолжаем дискуссию.
[vs] Чего ж стыдного. Я в основном пишу небольшие приложения, узкоспециализированные. тоже обхожусь модульной структурой. иногда выпадают большие приложения - тогда перехожу на классы. и то, только тогда когда знаю, что в будущем нужно будет расширять функционал и внедрять сторонние участки кода. Как там раньше говорили, каждому по потребностям...
fivig, так и я про то. Джумла это один обьективный недостаток. Кстати, посмотри ещё MODx. View там по умолчанию адекватнее, чем в "Друпале". В последнем "можно использовать" шаблонизаторы, а в "Модикс" шаблонизатор вшит и он с фишками. [vs], а я в основном классы используя как неймспейсы или как библиотеки, если хочу выложить куда-то или дать возможность "оторвать кусок" от чего-то целого.
Как по мне так в полной мере использовать ООП PHP не стоит так как все же вероятность того что проект поставится на PHP 4 на данное время, достаточно велика, приходится работать с классами не более чем просто как контейнеры для функций, хотя есть и свои незначительные но очень приятные плюсы
Citius, учитывая то, что с сегодняшнего дня php4 мертв. Следовательно Вы не правы. К тому же: 1) Выбор хостеров, с PHP 5 достаточно велик. 2) Для любого большого проекта берется выделенный сервер и там уже настраивайте как хотите. Чисто ИМХО работа с классами в php4 настолько по дурацки сделана, что лучше под него(хотя под него лучше вообще не писать уже) писать в "func" стиле.
К сожалению, гладко было на бумаге но забыли про овраги , я честно говоря сам ярый поклонник перехода на PHP5 полного и беззаговорчного, но так не считают некоторые хостеры к сожалению. Да для крупного проекта 100% PHP5 и точка.
Ребят я нисколько не призываю всех повально использовать определенную методологию или язык, просто пытаюсь выяснить для себя, может еще для кого то вопроссы по определенным технологиям в часности PHP5. С первого взгляда Drupal понравился больше joomla, хотя пропиарен он меньше)). За неделю постаряюсь поковырятся Drupal src с результатом обещаю отписаться. Кому интересно присоединяйтесь.