Здравствуйте. Прежде чем приступить хочу написать некое вступление.
PS: То что будет написано ниже, необязательно правильно, это сугубо моё мнение, на основе изучения движка в течении одного дня. Вполне возможно я допустил ошибку (и) из-за невнимательности, усталости или по каким бы то ни было причинам.
Всё то время, что я был на форуме, я так сказать присматривался к Joomla, смотрел какие ошибки возникают в чём появляются сложности и т.д. Так вот теперь решил перейти на разработку сайтов при помощи Joomla. Прежде чем создать эту тему, целый день смотрел код Jooml'ы. Конечно есть что мне не понравилось:
3 раза добавлен файл:jimport ('joomla.application.helper');
2 раза добавлен файл:jimport ('joomla.client.ftp');
2 раза добавлен файл:jimport ('joomla.user.helper');
2 раза добавлен файл:jimport ('joomla.filesystem.file');
2 раза добавлен файл:jimport ('joomla.user.authorization');
2 раза добавлен файл:jimport ( 'joomla.user.user');
2 раза добавлен файл:jimport ( 'joomla.environment.uri' );
2 раза добавлен файл:jimport ( 'joomla.html.html' );
2 раза добавлен файл:jimport ( 'joomla.utilities.utility' );
2 раза добавлен файл:jimport ( 'joomla.event.dispatcher');
имеется ввиду одновременный инклуд. Разработчики повидимому не хотели использовать глобальные переменные, видимо, чтобы не было не совместимости с другими скриптами. Но по мне тормоз в компиляции хуже. Самое главное старались избавиться от глобальных переменных, даже пожертвовали скоростью компиляции, и всё равно 1 переменная остаётся глобальной global $mainframe;
Разработчики компонентов используют порой не тот класс db иногда лучше JTable:: использовать, вместо & JFactory::getDBO ();
И вручную писать занового уже имеющийся код. Но это - разработчикам, а не Joomla, что-то я отклонился от темы. Кстати разработчики Joomla как будто забыли про JTable:: и порой тоже его игнорируют, ток не пойму почему.
Есть тормоз из за неправильного порядка инклуда файлов (причём значительный), а javascript Выдал бы тучу ошибок с такой последовательностью инклуда.
Не понял предназначения файла: joomla/registry/format.php Может просто сонный и пропустил что-то. А может бесполезный вовсе.
Зачем это? ini_set ('session.save_handler', 'files'); У всех хостов и так хранение в файлах, а если нет, то запрещено изменять этот параметр, ну может западная политика:-)))
Мне не нравится защита от удалённого инклуда библиотечных файлов, ручками надо править, а этого многим делать не охота мы любители готового! :-)
Многие файлы просто не используются в движке и не документированы на офф сайте. Только для необычных целей библиотеки эти пригодятся. А так зачем их копировать на сервер, лишний объём занимать.
Я думал у нас политика: нужно добавляй, не нужно пусть на локалке лежит).
Не понял к чему это:
function clone ($object) {
return unserialize (serialize ($object));
}
вначале собирать в 1 строку потом разбирать, вообще ничего не понимаю. Объясните балбесу.
Давайте тогда explode делать так: explode ('blabla',implode ('blabla',explode ('blabla',$var))); Помойму тотже маразм что и в приведённой функции.
мне не нравится в language.php это: var $_default='en-GB'; - пусть будет по умолчанию русский язык! Это шутка, в принципе эта переменная ничего не значит. Просто русский хочу и всё тут ru ru ru. А за бугром пусть en будет.
Не понимаю зачем это: создавать index2.php сувать туда: include ('index.php'); Приколисты блин.
------------------------------------------------------------------------------------------------------------------------------------
Итак перечислил что не понравилось, может я где-то ошибся, поправьте. Только я упёртый "баран" без доказательств останусь при своём мнении и Ваш рейтинг на форуме тоже не повлияет) Люблю себя очень)).
Что делалось дальше, а дальше решил создать компонент. Прочитал доки на офф сайте и приступил. Собираюсь сделать компоненты, который по функционалу будет схож с marketplace. Ток под 1.5 версию. Кстати пишу первый раз в виде MVC структуры, поэто выложил начальную (сырую) версию компонента и прошу тех кто писал компоненты для Joomla в виде MVC структуры взглянуть на код и сказать что не так. Може что-то не туда разместил и т.д. и т.п.
Также есть конкретные вопросы.
1) Контроллеры вот код:
if ($controller=JRequest::getWord ('controller')) {
$path=JPATH_COMPONENT.DS.'controllers'.DS.$controller.'.php';
if (file_exists ($path)) {
require_once $path;
}else{
$controller = '';
}
}
$classname='MainController'.$controller;
$controller=new $classname ();
$controller->execute (JRequest::getVar ('task'));
$controller->redirect ();
Судя из кода надо передавать имя контроллера в пост, гет и т.д. запросах. Так вот мне нужно добавить контроллер в папке controllers
для view=cat. Чтобы всё было понятно на коде установите мой компонент и зайдите в раздел категории.
Теперь о моделях, там должны храниться функции запросов к бд и только? А зачем некоторые разработчики создают папку tables и там извлекают и заносят в массивы данные?
Если может кто напишите простенький мануал. Вида:
Таким образом добавляются контроллеры: .....
Таким образом модели: ...
Таким образом представления: ...
Я уже кое-что разобрал
Например в view.html.php
Название класа должно выглядеть так чтобы всё работало:
class НазваниеконтроллераViewНазвание представления extends JView
{
function display ($tpl = null) {
parent::display ($tpl);
}
}
есть вопрос: Как грузить файл с название отличном от default в представлении (View)?
Также в голове упёрто остаётся наглая мыслишка, о том чтобы попросить того кто делал компоненты для 1.5 версии. Помочь мне, вести меня на этапе разработки. Ведь только первый компонент такой сложный потом поняв что к чему будет легче. Но это так к слову.
Я наверное уморил Вас думаю надо будет остальное в следующей теме. Продолжение освоения Jooml'ы.
Заранее благодарю всех кто будет учавствовать в данном посте. Кстати прошу Вас не посылать меня к компоненту hello Word ни русскому ни английскому с оффа. Эти компоненты исчерпали себя. Мне их кода не достаточно. Я сам ковырял различные компоненты, но там хаос, каждый разработчик пишет в своём стиле порой забываю про стандарты. Мало того стандартные компоненты Joomla (не все) вообще не используют MVC структуру, особенно касается админ части. А если не использовать MVC - зачем тогда 1.5 нужна вообще?!
Ещё раз прошу прощение за столь долгий пост.
[вложение удалено Администратором]