Отправляет email-рассылки с помощью сервиса Sendsay

Создание сайтов на Python

  Все выпуски  

PHP. Веб программирование для профессионалов. Август 2007. Выпуск 5


Август 2007. Smarty, Zend Framework 1.0.1, PHP4 уже не поддерживается. phpBB3 RC4.


Хочу обратить ваше внимание, уважаемые подписчики, что регулярность рассылки была изменена – теперь рассылка будет выходить раз в месяц. Я не успевал еженедельно выпускать новые рассылки, и тем самым огорчал вас. Я считаю, что раз в месяц я смогу подготовить насыщенную и полезную рассылку, которую вы будете ждать с нетерпением :). Итак, вперед!

 

Smarty

Около года назад я впервые столкнулся со Smarty. Мне пришлось переделывать чужие шаблоны, чтобы вставить туда html код. Эти шаблоны были написаны другими разработчиками так плохо, что я сразу же после завершения и сдачи проекта решил отказаться от Smarty и придумать более подходящий для меня шаблонизатор. Шаблонизатор – это метод организации проекта, где отделяются файлы скрипта от файлов дизайна сайта. Я потратил на организацию своего шаблонизатора порядка года. И опять меня судьба свела со Smarty, и в этот раз я уже решил прочитать техническую документацию (которая полностью переведена на русский язык, и расположена на сайте smarty.php.net). Изучив документацию о Smarty я однозначно для себя решил, что Smarty это то, чего я хотел достичь, когда разрабатывал свой собственный шаблонизатор. В Smarty есть все необходимые инструменты, которыми нужно пользоваться правильно и ваш проект будет реализован в сжатые сроки и очень качественно. Обращаю внимание, что над Smarty работает сообщество с 1998 года (почти 10 лет!).

Smarty позволяет делать кэширование шаблонов и страниц. Предположим что у вас есть страница с текстом, на которой расположены блоки новостей, прогноза погоды, курса валют, последние темы форума. Если вы делаете свой проект без кэширования, то при каждом запросе вашей страницы вы запрашиваете данные из базы данных, хотя данные не изменились в базе с момента последнего запроса страницы. Что предлагает Smarty? Вы установите время кэширования, например 5 минут. Ваш шаблон с динамическими блоками будет преобразован в статический файл и сохранен на диске. При следующем запросе этой страницы Smarty проверит, не истекло ли 5 минут с момента формирования кэша, и если время не истекло, то выдаст вам сформированную страницу без запроса к базе данных. А если файл следует заново сформировать, то Smarty это сделает сам. Данный подход существенно экономит ресурсы сервера, что становится заметным при высокой посещаемости ресурса.

Многие говорят, что шаблоны дизайна на Smarty ничем не отличаются от PHP, кроме как другим синтаксисом, и тем самым запутывают дизайнера. Это утверждение имеет смысл, если Smarty применяется начинающим программистом с маленьким опытом создания крупных программных комплексов. Заверяю, что синтаксис шаблонов Smarty имеет свои достоинства по сравнению с синтаксисом PHP. Во-первых, в шаблонах запрещено (!) использовать PHP код. Не стоит мне говорить, что в документации вам разрешают это делать – это запрещено. Во-вторых, в шаблонах Smarty имеются специальные модификаторы, например модификатор даты – в скрипте вы формируете дату в формате timestamp, а уж дизайнер сам решит, в каком формате следует вывести дату. Неужели вы не находите в этом свободы действий дизайнера, и при этом дизайнер не тревожит программиста с просьбой перевести дату в нужный ему формат.

Подводя итоги, скажу, что Smarty не идеален, но я рекомендую его использовать уже сегодня. Почему? Как минимум, есть одна очень веская причина. В данный момент, в сообществе разработчиков PHP6 идет дискуссия по поводу включения Smarty в ядро PHP6. По всему видимому, smarty таки будет включен в ядро PHP6, ведь он является главным козырем PHP. Вы можете заметить, что отдельным доменом вынесен только проект smarty.php.net, и все остальные поддомены php.net – это лишь сборники проектов (pear и другие). Я лишь даю необходимые данные для раздумываний, а уже за вами решение о применении Smarty в своих новых проектах.

 

Zend Framework 1.0.1

Данный сборник классов, написанный под PHP5/6 уже имеет стабильную финальную версию, и в последнее время очень интенсивно развивается. В состав данного фреймворка вошли знаменитые классы с сайта pear.php.net, фреймворк от компании Google, и собственные разработки компании Zend. Этот фреймворк является очень мощным средством, которое позволит вам повысить производительность персонала в несколько раз. Например, используя класс для работы в RSS лентами (XML), программист напишет всего пару строк, и программа будет работать в полную мощь. Первая причина применять Zend Framework – уменьшение количества кода, и улучшение формата самого кода.

Второе преимущество Zend Framework заключается в повышении безопасности ваших скрипов. Программисты с большим опытом знают о таких вещах как SQL инъекции, которых стоит избегать, и постоянно контролировать эти моменты в программном коде. Всем же новичкам не стоит детально изучать принципы SQL инъекций, а стоит лишь детально изучить документацию по Zend Framework и правильно применять данный фреймворк. К сожалению, документация переведена на русский язык частично.

Я создал для своих проектов класс абстракции баз данных, который был хорош. Но когда я детально изучил данный фреймворк, то взял очень много полезных моментов из фреймворка. Например мне понравилась такая организация кода в приложении при работе с базой данных:
$objDB = new Database();
// SELECT `name` FROM `users` WHERE `id`=10;
$objDB->Select( ‘name’ )
      -> From( ‘users’ )
      -> Where( ‘id=?’, array($_GET[‘id’]) )
      -> Execute();
$arrResult = $objDB->FetchAll();

 

PHP4 уже не поддерживается

Около месяца назад на официальном сайте php.net была опубликована новость об окончании поддержки PHP4. В первую очередь это связано с выходом в ближайшие месяцы PHP6, который станет еще лучше PHP5. Другой фактор заключается в том, что PHP4 и PHP6 кардинально отличаются, и переход с PHP4 на PHP6 будет очень болезненным для большинства разработчиков. Ведь PHP4 нельзя назвать даже ООП языком, он больше процедурный язык, как язык Си, живший еще в 80-х. Поэтому рекомендую всем разработчикам, которые все еще работают на PHP4 быстрыми темпами переходить на PHP5, а затем и на PHP6. Ведь PHP6 является продолжением PHP5 с некоторыми модификациями и дополнительной функциональностью. Попрощаемся с популярнейшим PHP4, который был наиболее легким в основании языком, благодаря которому на рынке появилось очень много «программистов-самоучек».

 

О phpBB3.

Я ранее использовал движок phpBB2 для некоторых своих проектов, и затем отказался от него, когда мои сайты взломали через данный форум. Прошло больше года, и я вновь решил попробовать новую версию phpBB3 RC4. Обращаю внимание, что это не финальная версия, а всего лишь релиз кандидат, и предполагает что этот форум может содержать ошибки. Меня порадовал в этом форуме продуманный интерфейс. Кроме того, дизайн сделан на основе блочной верстки, что положительно сказывается при раскрутке вашего проекта в поисковиках. Намудрили разработчики форума с правами доступа к форумам – теперь придется после создания каждого форума вручную менять права для каждого форума в отдельности, что отнимает время. Очень полезную вещь добавили – теперь можно создавать не только форумы, но и категории форумов, а так же ссылки на внешние сайты (кстати, форум может быть вложен в подфорум или в категорию, что очень удобно). Так же полезной я считаю функцию прикрепления файлов к теме – она тоже присутствует.

Теперь о некоторых особенностях форума phpBB3. Разработчики сделали так, чтобы права на просмотр форума хранились не в самих форумах, а у каждого зарегистрированного пользователя в отдельности. Т.е. в таблице с пользователями есть колонка, в которой хранятся права на просмотр того или иного форума. Я считаю с точки зрения ООП данный подход неправильным. Поясню – у меня стоит задача – установить много форумов на разных сайтах так, чтобы была общая база пользователей (зарегистрировался в одном форуме, имеешь доступ ко всем форумам). Как оказалось, именно из-за вышеуказанной особенности, этого сделать мирным путем не удается, и мне пришлось долгое время бороться с форумом, и в конце концов я создал свой MOD для изменения структуры таблиц в базе данных (создание VIEW для таблиц). Что ж поделаешь, другого способа не нашел. Может быть, вы найдете другой способ? Подробнее о данном моде читайте по адресу http://www.phpbb.com/community/viewtopic.php?f=70&t=574780

Форум работает стабильно, хотя наблюдаются некоторые незначительные недоработки. Вы имеете возможность посетить наш новый проект для PHP программистов по адресу http://php.developers.in.ua и посмотреть как функционирует данный форум phpBB3. Я лично приглашаю всех PHP программистов на наш форум для ведения дискуссий о данной рассылке и о новых технологиях.

 

Надеюсь, что вы простите меня за то, что я не выпускал рассылки последние 2 месяца.


В избранное