Архив

Архив раздела ‘PHP’

Google Translate

28 Август 2008 101 comments

Сейчас пытаюсь возродить свой бывший сайт под названием ForbidenWish. Там много книг и вносить их в БД вручную я не собираюсь, поэтому написал небольшой скрипт который обходит директории, парсит имена файлов и заносит их в базу. Вот в один момент я понял что простая транслитерация названия книги это не интересно, а иногда и глупо получалось, и я вспомнил про форум ДКлаб у них там при создании темы заголовок переводиться на английски (причем весьма неплохо) и подставляется в url. Я практически уверен что Котеров не писал переводчик и просто пользуется каким-то сервисом, первое что мне пришло в голову - Google. Сначала думал парсить html страницу но потом понял что там все намного проще и перевод забирается javascript'ом, В общем после непродолжительных изысканий я придумал вот эту функцю.

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

Pattern: ServiceLocator

2 Май 2008 2 comments
Статья Pattern: Registry имеет непосредственно отношение к этой статье, советую ознакомиться перед прочтением.

Паттерн ServiceLocator изначально спроектирован для Java и дает возможность находить сервисы, зная их имя. В Java для того чтоб найти Enterprise JavaBeans (EJB) или Java Message Service (JMS) нужно использовать JNDI API. Это накладывает на код некоторые ограничения, например операции поиска и создания компонентов служб могут быть сложными (ресурсоемкими) и могут использоваться периодически в различных клиентах приложения. Для этого ввели паттерн, который позволяет абстрагироваться от использования JNDI и скрытия сложностей создания исходного контекста, а также может повторно использоваться несколькими клиентами.

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

Наконец-то заработал поиск

26 Апрель 2008 2 comments
Статья более не актуальна, так как относилась к старому, самописному движку.

Вот я и сделал наконец поиск по сайту, вообще еще много чего надо сделать, а то я даже страницы добавляю через MySQL. Сейчас поиск ищет по заголовку, описанию и собственно телу страницы, самое приятное в нем то, что в нем есть ранжирование результатов. Если кому-то интересно как такое сделать то читайте дальше.

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

Request

20 Апрель 2008 Comments off

Переносить классы c phpclasses я начал с Cache Manager, а это второй класс под названием Request. Его я люблю не меньше, в основном за его гибкость, он позволяет проверить любую переменную переданную ему на соответствие шаблону. Фактически класс есть оберткой для функции preg_match(), но позволяет не задумываться о параметрах.

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

Pattern: Registry

17 Апрель 2008 7 comments
Подробное описание работы класса смотрите в предыдущей статье CORE.
Возможно вам будет интересна статья ServiceLocator, она имеет непосредственное отношение к этой статье.

Решил обновить класс, но очень не хотел переписывать прошлую статью, она мне дорога как память :). Поэтому решил еще раз опубликовать свежий класс. Напомню или расскажу для тех, кто не заметил сверху ссылки на предыдущую версию, что класс реализует паттерн Registry. То есть это Singleton класс, имеющий в себе ссылки на все основные ресурсы сайта. Например, удобно получать ссылку на объект для работы с базой данных с помощью выражения Registry::extract('db') не заботясь о том где, как и когда он был создан.

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

Cache Manager

16 Апрель 2008 Comments off

Я почему-то думал, что давно уже выложил в блоге свои классы опубликованные на phpclasses.org, а когда недавно хотел посмотреть один из них, оказалось, что их нет. А вот сейчас я собираюсь исправить этот недосмотр и начну с класса для кэширования страниц.

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

Вычисление знака зодиака

9 Август 2007 8 comments

Тут только что ASMO попросил помочь ему рассчитать знак зодиака зная timestamp даты рождения. Чего он тока на свой сайт не пихает))))

Мне чета вдруг захотелось написать что-то очень простое но элегантное.

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

Pattern: Factory

25 Июль 2007 3 comments

Некоторые рассуждения о шаблоне проектирования Factory, а так же примеры реализации в "домашних" условиях наиболее универсального метода.

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

MySQL Session Manager

21 Июнь 2007 4 comments

Для создания этого сайта мне нужен был класс для управления сессией так как я не хотел использовать обычный механизм, хранения в файлах, а использовать базу данных.

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

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

CORE

11 Июнь 2007 Comments off
Эта статья является демонстрацией примера приведенного в статье Registry
У этой статьи есть продолжение Pattern: Registry

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

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