А мне вот интересно, создают ли в каких-нибудь форумах физиков темы про документацию на постройку, например лазера?
Казалось бы, что проще - прочитал книжку, купил материалы, собрал дома лазер киловатта на четыре.
Почему вам, уважаемые начинающие, кажется, что вы все поймете, прочитав книжку или статью?
Для профильно образованного человека, документации, необходимой и достаточной для написания чего угодно под Joomla - пруд пруди.
А для того, кто не знает, что такое MVC, что такое модель данных, да и собственно PHP не знает, есть два пути.
Первый путь - выучить сначала основы и принципы написания программ, а второй - обратиться со своими задачами к специалистам.
А с наскока, все, что можно сделать - это научиться писать ***код. А этого добра и так навалом.
Чушь. Не убедили. Писать ***код по неопытности никогда не приходилось? И почему с наскока? Всему свое время. О путях не спорю, каждый выбирает в меру своего разумения и не только перечисленные. О профильно образованных ничего не скажу, поскольку образованный не профильно.

А вот о документации, которой пруд пруди, явно погорячились. Нормального, а главное полного, описания API нет. Не дело, когда чтобы понять какие переменные и каких типов передать функции, нужно в исходники лезть.
оно-то есть, а толку от него, как от козла молока.
Лучший способ изучения программирования в конкретной среде - это работа по примеру.
Берем простой компонент и смотрим, как он устроен, читаем документацию для разработчиков на сайте Joomla, и все получается.
Почему только этот.

Способов получения информации множество и ограничиваться только одним не стоит.
Эт че за пессимизм (( ? Надо продолжать. По этой теме вообще больше никто не пишет. Мануала нормального по написанию компонентов 1.5 вообще нет. Только на допотопных примерах.
P.S. Не понимаю почему админы не поддерживают твою инициативу!!!!!!

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

Например:
userxp обратил внимание на JString и mainframe. JString отвечает на вопрос, почему получаются кракозябры вместо кириллицы, при правильной кодировке файла и базы данных. Комментарий о mainframe натолкнул не мысль, что стоит разобраться, в чем разница с JFactory::getApplication.
заменить на JString::strtoupper
это UTF-8. могут быть нюансы.
опшн через глобал, зато мейнфрейм - пожалте, переопределяем.
это как минимум странно...
$mainframe = JFactory::getApplication() - это где? фронт? админка? кхм...
mainframe является единой глобальной переменной, соотв. global $mainframe.
а $option = JRequest::getCmd( 'option' );
Понял кажется в чем разница. Когда global $mainframe; берем уже готовые данные из переменной, а когда $mainframe = JFactory::getApplication(); создается лишний экземпляр класса, лишняя нагрузка.
Если не прав поправьте.
Возражений не поступило.
shprota подал мысль, что не нужно пользоваться все время одной функцией запроса к базе данных типа SELECT *, а для каждой задачи делать более мелкий запрос и извлекать только действительно нужные данные, а не все сразу.
Например, если вам не нужны все поля, не нужно делать "SELECT *" чтобы не тянуть лишнюю информацию, не нужно делать сложные джойны, чтобы запрос исполнялся быстрее.
Ну и, разумеется, надо помнить, что запросы на изменение данных в базе исполняются довольно долго, в отличие от запросов на выборку данных.
Есть ссылки по выбору и настройке IDE, хотя после испробования, согласился с userxp
а я не юзаю ни Zend, ни эклипс, ни бинс.. и вааще не юзаю отладчиков

и вернулся к привычному PHP Expert Editor-у который использую просто как удобный редактор кода.
Даже эта шутка заставила задуматься.

У тебя в подписи глючок
$mainframe->close() вызывает die. Второй не нужен 
АААА! обратил внимание? 
Сработало! 
зы. это не глюк. это намеренно допущенная очепятка 
там не зря написано именно DIE, а не EXIT....
exit ('Это exit');
die ('Это die');
$mainframe->close('Это close');
Дают один и тот же эффект, в чем разница?
Мало того close это и есть exit и почему $code integer
// @param int Exit code
function close( $code = 0 ) {
exit($code);
}
http://www.php.ru/manual/function.exit.htmlhttp://www.php.ru/manual/function.die.html 
Перечисленное оправдывает потраченное время. Поэтому продолжим.