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

    На помощь приходит встроенный в php механизм автозагрузки классов при их вызове.

    Раньше мы делали так:

    
    
    <?php 
    include 'db.php';
    $db = new db();
  • Обновилась одна из лучших отечественных CMS Danneo. Система выложена на официальном сайте 23 марта 2011, так что пишу статью с большим опозданием, но так как толковых описаний изменений в новой версии не нашел, то сделаю это сам.

    Danneo обновила не мажорную цифру, и даже не минорную. Система обновилась до версии 0.5.4.  Последняя вышедшая версия была 0.5.3 

    Процесс установки не претерпел никаких изменений. Все по старому, в самом конце по прежнему надо вручную удалить папку setup. Однако, приятные сюрпризы начинаются сразу после установки. Первое, что мне бросилось в глаза это две предустановленных шкурки Soft и Clear. Скинов Original и Begin остались в старой версии, но для тех кто не любит старину разработчики обещали портировать на новую версию и их. 

    Что нового в Danneo 0.5.4? Изменений в системе достаточно. Среди них

    1. SEO-инструменты для продвижения сайтов:

    • Проверка пузомерок сайта (домена), таких как - PR, ТИЦ и alexa Rank.
    • Проверка позиции в выдаче в популярных поисковиках (яндекс, google, yahoo) по ключевым словам
    • Проверка обратных ссылок.
    • Полностью настраиваемая карта сайта - Google Site-Map.
    • Настраиваемые социальные закладки.
    • Внутренняя перелинковка страниц по ключевым словам, для улучшения внутреннего ссылочного ранжирования сайта.

    2. Свои meta-заголовки для отдельных страниц, и категорий (Очень ожидаемое нововведение для seo-шников)

    3. Добавлена возможность использования в ЧПУ, дефисов и знаков подчеркивания при разделении слов "-" (slovo-slovo-slovo).

    4. Возможность добавления неограниченного количества тегов, к новостям.

    5. Добавление неограниченного количества изображений к страницам.

    6. Создание групп пользователей, ассоциируются с группами форума, при интеграции.

    7. Выпадающее меню, настраиваемое в панели управления (надо сказать, что не очень удобна реализация в админ-панели).

    8. «Хлебные крошки», теперь можно выносить в шапку сайта. Это значит, что теперь место непосредственного вывода надо использовать $siteglobal['insert']['breadcrumb']

    9. Модная нынче тенденция: для управления системой и создания эффектов, используется библиотека jQuery. Это в свою очередь значит, что мы можем использовать любые анимационные плагины этой библиотеки и не только их. Благодаря этой библиотеке интерфейс административной части заметно оживился. В встроенном файл браузере повсеместно используется AJAX.

    10. Для повышения читабельности и соответствии стандартам оформления, переписан весь код PHP. Первое, что замечаешь это PhpDoc комментарии в файлах модулей. А еще в административной части все print заменены на более быстрые echo.

    11. 2 скина Soft и Clear заменили стандартные Original и Begin.

    12. Устранены ошибки связанные с включенным режимом экранирования кавычек. Теперь редактирование Настроек не вызывает массу негативных эмоций.

    13. Каждый блок имеет свои настройки.Так же долгожданное нововведение. Отсюда новое правило написания блоков. 

    Расскажу подробнее о некоторых пунктах

  • Техника синлетонов на php

    Программистам php, приходится мириться с тем, что переменная объявленная в любом месте скрипта, не видна ни в одной из функций или методов.

    Конечно, есть  ключевое слово global.Но вписывать туда  все используемые переменные очень проблематично, и захламляет код программы.

    Поясню на примере:

    Пусть есть класс db - обертка над стандартным mysql_query. И класс read_books, который может увеличивать количество просмотров определенной кники по его id.

    В большинстве случаев используют такую конструкцию:

    <?php 
    class read_books{
    	function __construct(){
    		$this->db =  new db();
    		$this->db->connect();
    	}
    	function f($id){
    		$this->db->query('update books set hits=hits+1 where id='.$id);
    	}
    }
    $rd = new read_books();
    $rd->f(122);
  • Ранее мы написали небольшой каркас для компонента и сошлись на том, что все можно сделать на нативном php. Но зачем тогда использовать Joomla если все равно все приходится писать руками. В Joomla есть удобный механизм работы с шаблонами, моделями и  контроллерами. народе это называется MVC, но в Joomla  это больше mVc. Контроллер и модель реализованы не самым удобным образом, а вод вид довольно интересен. В этой статье поговорим про создание шаблона для нашего компонента.