Алексей Качаев | Web-developer, фрилансер, менеджер

PHP, jQuery, AJAX, CodeIgniter, ZendFramework, Web2.0, блоггинг, Wordpress, бизнес, StartUp, Инветоры, web-проекты, бизнес-идеи, фриланс, интерфейсы

PHP: код, работающий только из include`а

Опубликовано: Алексей Качаев | 11 комментариев

Итак, пока не перешел к содержанию заметки:

Замечание. Уважаемый читатели блог поменял RSS ленту. Теперь rss доступно по адресу http://feeds2.feedburner.com/kachayev.

Со старого фида идет редирект на новый. Но это будет работать только некоторое время (где-то до конца февраля). Так что, лучше переподпишитесь :)

П.С. Даже не спрашивайте, какой смылс был Гуглу затевать всю эту возьню… Кто ж их знает..

Так вот, собственно. Вернемся к теме разговора.

Когда-то давно, когда я вел блог по Интернет-маркетингу, у меня был отдельный раздел “Ответы на вопросы читателей”. В этом разделе я озвучивал свои ответы на те письма, которые ко мне присылали читатели. Иногда даже публиковал (с разрешения автора) исходные творения, ибо там тоже куча полезной информации… Сейчас мне тоже приходят письма от читателей и простых посетителей блога, но вопросов в них мало :) Хотя иногда попадаются. Выносить эту переписку на блог не имеет смысла, потому что в основном это стандартные вопросы, аппелирующие чаще всего к мануалу.

Но.. Сегодня получил очень интересный вопрос от Виктора, который заставил меня почесать свой затылок и покурить немного мануал php…

Вопрос заключался в следующем: как сделать так, чтобы код php-файла выполнялся только в том случае, если этот файл влючен в приложение через include (или require), но не работал напрямую?

Для того, чтобы справиться с этой задачей - перечитал почти весь раздел Функции для работы с файловой системой ( http://ua2.php.net/manual/ru/ref.filesystem.php ). Кстати, очень полезно иногда такое делать. Потому что, вроде знаешь, знаешь… а тонкостей много можно найти.

Выход из поставленной ситуации был найденый такой.

/**
 * $_SERVER['SCRIPT_FILENAME'] = The absolute pathname of the currently executing script
 */
if ( realpath($_SERVER['SCRIPT_FILENAME']) == realpath(__FILE__) ) 
{
  exit;
}  

Думаю, логика понятна. Предположим, у нас есть файл /home/site/ajax/doit.php, который подлючает через require() файл /home/site/include/my.php. Если мы включили в последний код, который указан выше, то при вызове /home/site/ajax/doit.php:

realpath($_SERVER['SCRIPT_FILENAME']) - вернет /home/site/ajax/doit.php,

realpath(__FILE__) - вернет /home/site/include/my.php.

А как бы поступили вы?

Понравился пост? Будь в курсе последних событий: подпишись на RSS-ленту.!

Украина первая в мире по запросу “Zend”

Опубликовано: Алексей Качаев | 18 комментариев

Сегодня провел небольшое исследование в Google Trends. Нет, никаких серьезных целей у меня не было, а вот полученные результаты оказались просто поразительные. Сделанный мной вывод:

Украина одна из самых активных стран использующих фреймворки, а Индия - одна из самых активных стран, обучающихся языкам программирования.

Откуда такая уверенность? Смотрите сами:

(Под катом скриншоты)

[Читать далее...]

Понравился пост? Будь в курсе последних событий: подпишись на RSS-ленту.!

JQuery и Ajax: результат в красивой оболочке

Опубликовано: Алексей Качаев | 10 комментариев

Уверен, если вы используете в своем клиентском приложении элементы AJAX, перед вами так или иначе встает вопрос: как сообщить пользователю о том, что запрос выполнен, или произошла ошибка, или еще чего случилось?

Чтобы сказать “запрос выполняется” практически все пользуються динамической картинкой из вращающихся стрелочек, кружечков, палочек и т.д. Это правила хорошего тона - нельзя давать пользователю заскучать. Вопрос же текстового оповещения решается веб-мастерами по разному и сегодня я поделюсь своим опытом.

Кто работает с Google Reader уже привыкли вот к этому:

jQuery и Ajax - оформление ответа сервера

Текстовые ответы сервера при реализации AJAX - запросов отображаются в одной и тоже области екрана в всплывающем слое. При чем цвет слоя ярко дает нам понять, что же произошло: если все ок - зеленый, ошибка - красный, информационное сообщение - желтый.

Работая над движком НаСтенке.ру мне понадобилось что-то подобное для того, чтобы выводить пользователю сообщения при голосовании “Спасибо, ваш голос учтен”, “Извините, произошла ошибка”, “Вы уже голосовали за эту статью раньше!”. Погуглив немного, нашел очень удобный jQuery плагин jGrowl, с которым и буду работать в дальнейшем.

Стандартное использование JGrowl

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

jQuery и Ajax - красивая оболочка для ответа сервера

Использование этого плагина продемонстрирую на примере своего Bank Your Brain: когда пользователь загружает пример из файла, клиентское приложение получает ответ сервера в формате XML, парсит его и для каждого найдено в XML пункта создает переносимый блок на сайдбаре. Давайте увеличим немного юзабильность приложения - будем сообщать пользователю о том, сколько балансовых статей добавлено (без этого действительно неудобно, поскольку добавленные блоки уходят далеко вниз, за пределы видимости экрана).

[Читать далее...]

Понравился пост? Будь в курсе последних событий: подпишись на RSS-ленту.!

Как красиво оформить дату на PHP

Опубликовано: Алексей Качаев | 18 комментариев

Если вы когда-нибудь сталкивались с проблемой вывода даты в пользовательском интерфейсе, то вам, наверное, знакома эта проблема.

Суть проблемы:

В MySQL базе дата и время по умолчанию храняться в формате “2009-01-15 13:20:56″. Выводить дату в таком формате - просто самоубийство :) Ну как минимум издевательство над пользователем.

А как надо, спросите вы? И я отвечу, что стандартных правил нет, каждый делает на свое усмотрение. Вот пример всем известного ВКонтакте.ру (заголовок записи на Стенке):

  Оформление даты на PHP

Красиво и понятно. Поэтому мы будем ориентироваться на этот пример. Значит, задача перед нами стоит такая: перевести дату из формата базы данных “2009-01-15 13:20:56″ в формат вменяемого пользователя “15 января 2009 в 13:20″.

Решение проблемы:

Для эффективного решения мы сделаем скреативим функцию dateFormat(). Функция будет принимать параметром дату из базы данных и выдавать готовую строку результата.

Но… Для того, чтобы эта функция не только решала нашу проблему, но и была достаточно гибка в применении, добавим к ней несколько возможностей. [Читать далее...]

Понравился пост? Будь в курсе последних событий: подпишись на RSS-ленту.!

Интересно почитать…

Опубликовано: Алексей Качаев | 4 комментария

Wordpress - стандарты кодирования плагинов от Антона Шевчука.

Очень полезная статья для тех, кто создает плагины для Wordpress`а. Ну и для тех, кто планирует этим делом заниматься. Узнал много нового. Например, о том, что существует валидатор содержания readme.txt для вашего плагина. Если не поленитесь прочитать, также узнаете:

? о заголовках (комментариях в коде)

? о стандартах кодирования

? о правильной динамической подгрузке файлов

? об установке, настройках и мультиязычности

В общем, читайте :)

Мациевский Николай: перевод презентации Douglas Crockford JavaScript: The Good Parts. Part Six: Ajax Performance, в которой освещаются фундаментальные проблемы проектирования клиентских веб-приложений и эффективная их оптимизация.

Очень понравился этот список советов по оптимизации клиентского приложения:

? Не оптимизируйте, пока это не нужно. Постарайтесь как можно раньше узнать, что это нужно.

? Чистый, правильный код легче оптимизировать.

? Тонкая настройка обычно не дает эффекта.

? Иногда требуется рефакторинг кода или его перепланирование.

Воспринимается, всеми как должное, а делается зачастую по-своему :)

Скакунов Александр делиться своим опытом наращивания читательской аудитории с помощью публикации своих PHP-классов.

На английском языке, кстати. Результат достаточно интересный. Но и 8 php-классов на дороге не валяются :)

Алексей Петров рассказывает об удобстве использования форм.

Ничего особенно революционного не сказано. Но для “освежения головы” - то что надо.

Понравился пост? Будь в курсе последних событий: подпишись на RSS-ленту.!

Страница 1 из 212»