Архив Категории: PHP

Статьи и мои мысли по PHP

Валидатор кирилицы в Zend Framework

Вопрос валидации кириллицы в Zend Framework встал остро, но ни один стандартный валидатор Zend Framework текста не предусматривает ее наличие и проверку в тексте.

Решение вопроса в следующей функции:

public function validCyrillic($string)
    {
        $zv = new Zend_Validate_Regex(array('pattern' => '/^[а-яА-Яa-zA-Z\.\d\s]*$/'));
        return $zv->isValid($string);
    }

Все до боли просто — валидатор сделал и стандартного валидатора Regex для регулярных выражений.

Мою проблему решило. Надеюсь и Вам поможет. Можно, используя регулярные выражения, проверять различные структуры данных (ощутил себя К.О. :) )

Установка ZFDebug

Ранее я писал краткий обзор на тему ZFDebug. Сейчас напишу об установке его на ZF. Итак, установка ZFDebug. Ее процесс крайне прост. читать далее »

MediaWiki: где же находятся файлы шаблонов?

Доброго времени суток.

По долгу службы возникла задача подправить слегка шаблон для CMS MediaWiki.

И вот тут меня ждал сюрприз. После тщетных попыток поиска чего либо в интернете на эту тему. начал искать просто по папкам. Не первый день работают с разного рода CMS и сразу начал искать что-то либо напоминающее templates или layouts… А не тут то было.. Не нашел! читать далее »

Краткий обзор ZFDebug — дебагера для Zend Framework

Доброго времени суток.

Наткнулся в сети на ZFDebug на Google. Почитал, полистал — оказалось очень полезная штука для сбора информации при запуске проектов на Zend Framework.

Выдает общую информацию по используемым в процессе выполнения ресурсам. Для начала вот как это все выглядит.

Общий вид панели:

читать далее »

Переводим CodeIgniter на PHP 5.3

Доброго времени суток.

Возникла задача переноса сайтов с сервера с PHP 5.2 на сервер с PHP 5.3. Гладкого перехода и не ожидалось, тем более что во многих статьях об этом писалось. Вот с чего следует начать… читать далее »

UMI.CMS vs Kaspersky: мозг WIN

Доброго времени суток.

Ранее в статье UMI.CMS vs Kaspersky: кто круче? я писал о том, что UMI.CMS и Kaspersky не подружились на наших компьютерах из-за баннеров.

Не долго думая, было найдено простое решение это проблемы. читать далее »

PHP

RE: PHP: фрактал плохого дизайна

Доброго времени суток.

Набрел на эту статью вчера, прочитал осмыслил и понял, что, являясь, вроде как, программистом PHP, согласен с автором в 80% его «каменей в огород» PHP.

Автор пишет многобукав, порой перегибает палку, но этот жизненный опус стоит того, чтобы его полностью прочитать.

Я имею опыт программирования на других языках и  могу с ним во многом согласиться. Самый большие камни на мой взгляд — это слабая типизированность PHP, которая в последующих версиях сойдет на нет, я надеюсь, и, мягко говоря, забавное поведение оператора ==. В остальном либо я не придал значение, либо на мой взгляд не является такой сильно большой проблемой для этого языка.

Всем желаю чистого кода :)

Установка MySQL на FreeBSD

Доброго времени суток.

Вот и познакомился я с FreeBSD :)  Знакомство началось с необходимости установки MySQL на рабочий сервер, где PHP  был собран без модуля MySQL, потому что он там собственно и не нужен был. Установка была произведена следующей коммандой:

cd /usr/ports/databases/mysql51-server
make && make install

У меня ставилось около часа, а то и больше, непривычно по сравнению с Linux, где ставится сразу пакет, а тут собирается из исходников. Сразу же ставится зависимый клиент для сервера. После установки надо добавить в /etc/rc.conf строку:

mysql_enable="YES"

Ну вроде установилось. Но пароль не спросила при установке. Оказалось пускает и так, без него… Интересно. Значит надо править таблицу пользователей. Запускаем MySQL и начинаем править:

$ mysql
USE mysql; // выбрали базу
DELETE FROM user WHERE User=''; // удалили пользователей типа гость
UPDATE user SET Password = PASSWORD('тут_новый_пароль');
                   //установили пароль для оставшегося пользователя (root)
FLUSH privileges; //обновили привелегии

После этого удаляться все пользователи с пустым именем, и появиться пароль у пользователя root. Далее можно либо обновить привилегии, либо тупо ребутнуть службу MySQL. Вуаля! У меня есть рабочий мускул, в который можно попасть только по паролю. Все как надо:)

А вот когда подключил mysql.so, тогда оказалось что PHP собран без требуемого модуля. Исправилось следующим путем:

cd /usr/ports/databases/php5-mysql
make install

После этих махинаций перезапускаем Apache и радуемся, что у нас все работает:)

Вроде как все. если нашли ошибки или неточности — пишите обязательно:)

UMI.CMS Start может больше

UMI.CMSДоброго времени суток.

Есть у меня один сайт на UMI.CMS. Использую бесплатную версию. В целом все устраивает, но возникла необходимость написать свой модуль, ну или хотя бы его подобие модуля. Мне в частности понадобился WHOIS. Решил попробовать прикрутить его как модуль системы. Но, как и говорится в описании, модули писать свои нельзя с этой версией — при добавлении этого модуля в систему ничего не происходило, он не регистрировался. А для использования его внутри текста страницы он должен быть зарегистрирован в системе, система должна знать про его существование и пути до исполняемых файлов.

НО… Часть модуля — статическая форма, которая находится на каждой странице. Я ее, конечно, разместил в шаблоне страниц и … О чудо! Она отобразилась!

Можно сделать следующие выводы: модуль работает, но его содержимое выводится только в шаблон. Значит можно просто сделать для страницы данного модуля свой шаблон и поместить вместо %content% нужный шаблон. Парсинг его прочитает и выполнит. Проверено :)

На основе этого, на мой взгляд, не сложно сделать, например, свой модуль каталога или модуль фото-галереи, используя возможности .htaccess.

В одной из следующих статей  я расскажу, как сделать так, чтобы в бесплатной версии UMI.CMS можно было нормально регистрировать модули. Эта фича была замечена мною позже и еще не изучена. В общих чертах — я просто поверх своей бесплатной версии накатил код платной версии. Это очень «в общих чертах». Но это уже совсем другая история…

Авторизация PHP при помощи LDAP: библиотека adLDAP

Доброго времени суток.

Потребовалось написать небольшой сервис для локальной сети организации. А сети есть Active Directory (далее AD). Возникла идея не создавать базу пользователей, а воспользоваться уже существующей и заполненной базой.

Для этого дела нашлась в сети в сети библиотека adLDAP. Предназначена для взаимодействия PHP и AD. Как оказалось, крайне удобная библиотека. Ее надо только настроить, и она будет служить верой и правдой. Для этого надо знать полный адрес в сети Вашего сервера AD (или нескольких). Из него можно получить суффикс доменный. По имени большинства настраиваемых переменных можно понять для чего они, и что должно находиться в них.

Вот некоторый из них:

  • accountSuffix — суффикс учетной записи
  • baseDn — разбор названия домена. Например mydomen.local будет DC=mydomen,DC=local
  • domainControllers — массив, содержащий полные имена серверов AD  в Вашей сети
  • adminUsername и adminPassword  - для моих целей не понадобились и имели значение NULL оба. Для аутентификации в AD этого вполне достаточно. Судя по комментам к переменным — они должны содержать логин и пароль пользователя с высокими привилегиями. Наверняка, будут необходимы для получения списков пользователей или групп, например.

Это базовые настройки класса, которые позволят подключиться к Вашему домену.

Пример использования есть по ссылке, приведенной выше. Там же и код этого класса. Документация по API здесь.

Вот собственно и все. Буду дальше его использовать, разбираться — обязательно напишу что-нибудь новенькое о нем.

Яндекс.Метрика