Doctrine Accessors и Mutators
Очень часто пароль мы хешируем, для этого есть замечательный метод hasMutator.
Пример модели:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | class User extends Doctrine_Record { public function setTableDefinition() { $this->hasColumn('username', 'string' 255); $this->hasColumn('password', 'string', 255); } public function setUp() { $this->hasMutator('password', 'md5Password'); } public function md5Password($value) { $this->_set('password', md5($value)); } } |
и теперь когда мы работаем с созданием модели, апдейтом и т.д. можно просто писать так
1 2 3 4 | $user=new Users(); $user->username="aa"; $user->password="haha"; $user->save(); |
в базе будет положена колонка с паролем в md5
Уникальных посетителей темы: 46Удаление дубликатов в MySQL
Все банально =)
DELETE t1 FROM userlogins t1, userlogins t2 WHERE t1.login=t2.login AND t1.ID != t2.ID
Уникальных посетителей темы: 68Zend Server CE установка и настройка для Windows (Windows Zend Server Community Edition)
Установка Zend Server CE
Рассмотрим процедуру установки и настройки сборки Zend Server CE для Windows, напомню я уже делал обзор Zend Server.
И так, мы хотим установить себе Zend Server CE (далее по тексту ZS).
Первое что нам нужно сделать, это скачать последную версию с сайта:
http://www.zend.com/products/server/downloads-all
Там выбираем пакет для Windows, на момент написания это был файл:
![]()
Скачиваем…
Теперь перейдем к настройке и установке
- Запускаем скачанный файл
- Установка доступна в 3-х вариантах: Typical, Full and Custom
Custom - вы сможете сами выбрать что поставить, а что нет =) (ВЫБИРАЕМ ЭТОТ ПУНКТ) - Ставим галочки напротив нужных вещей


- Перейдете в диалог Destination Location где нужно выбрать КУДА ставить сервер, я советую выбирать путь такой c:\zs\ (описание будет данно для этого пути)

- Порт apache выбираем 80
- В итоге будет поставлено:
- PHP 5.2.9 -- Common Extensions -- Additional Extensions -- Zend Optimizer+ -- Zend Debugger -- Zend Data Cache - Zend Framework 1.8.2 -- Zend Framework Base - phpMyAdmin - MySQL Server - Apache Web Server on port 80
- Жмем Install. Будет загруженно дополнительно phpmyadmin (почему то 2.11.9.3 – я обычно потом ставлю ветку 3.x) и mysql сервер.
Настройка Zend Server CE
Заходим в панель управления:
http://localhost/ZendServer/

Вводим свой пароль, входим. Там можете поиграть с GUI =)
Но мы пойдем дальше…
Первое что я меняю, так это делаю vhosts т.к. все таки мы не один сайт разрабатываем, а много, для этого делаем изменения:
1. У меня все сайты лежать в папке c:/www
2. Создаем файл c:/www/vhosts.conf в нем пишем наши сайты:
NameVirtualHost *:80
<VirtualHost 127.0.0.1>
ServerAdmin mail@mail.com
DocumentRoot «C:\www\phpmyadmin»
ServerName 127.0.0.1
ServerAlias www.phpmyadmin
</VirtualHost>
<VirtualHost 127.0.0.2>
ServerAdmin mail@mail.com
DocumentRoot «C:\www\site1″
ServerName 127.0.0.2
ServerAlias www.site1
</VirtualHost>
и т.д., меняем айпи и папку где лежит сайт.
3. Меняем конфиг апача c:/zs/Apache2/conf/httpd.conf
Добавим строку в конце:
Include c:/www/vhosts.conf
Строки:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
переделываем на
<Directory />
# Options FollowSymLinks
# AllowOverride None
# Order deny,allow
# Deny from all
</Directory>
4. Запустим апач, если все запустилось, то при открытии http://127.0.0.1 у нас будет phpMyAdmin (предварительно туда его желательно залить -) )
Собственно это все.
Уникальных посетителей темы: 2 034Zend Server 4.0.3 & Zend Studio 7.0 Early Access Release
Вышли обновления для таких вещей как Zend Server до версии 4.0.3.
Основное это переход на PHP 5.3 (RC2).
Скачать Zend Server можно по ссылке:
http://www.zend.com/en/products/server/downloads-ea
Теперь более глобальное обновление Zend Studio до версии 7.0 !!!!
- Zend Studio базируется на последней версии Eclipse (Galileo).
- Поддержка PHP 5.3 (Namespace)
- Улучшение редактора кода
- Поддержка интеграции Zend Server
Теперь Zend Studio еще больше интегриновать с Zend Framework:
- Легкое создание любых элементов Zend Framework
- Настраиваемый дефолтный проект
- Обновленные примеры работы
- Интеграция Zend Tool
Скачать Zend Studio 7.0 и потестить можете по ссылке:
http://www.zend.com/en/products/studio/studio-7-early-access
Уникальных посетителей темы: 57Советы по оптимизации работы с MySQL
На mysql.com появилась отличная статья по оптимизации работы с MySQL, линка: http://forge.mysql.com/wiki/Top10SQLPerformanceTips
Уникальных посетителей темы: 14Doctrine Pagination – Постраничная разбивка средствами Doctrine
В ZendFramework конечно есть модуль Pagination, но после его использования я решил поглядеть а что есть у Doctrine и нужно сказать что у нее это ЕСТЬ и реализованно неплохо!
Оригинальное описание находится тут: http://www.doctrine-project.org/documentation/manual/1_0/en/utilities#pagination
Пример использования:
1. В контроллере пишем:
$currentPage=$this->_getParam("pager"); // Номер страницы из роутера $resultsPerPage=20; // Cколько результатор на одной странице $pager_layout = new Doctrine_Pager_Layout ( new Doctrine_Pager ( Doctrine_Query :: create () ->from ( "Users u" ) ->orderBy ( "id DESC" ), $currentPage , $resultsPerPage ), new Doctrine_Pager_Range_Sliding ( array ( "chunk" => 5 )), "/admin/users/index/{%page_number}" ); $pager_layout ->setTemplate ('<a href="{%url}" class="pager">{%page}</a> '); $pager_layout ->setSelectedTemplate ('<b class="pager">{%page}</b> '); $pager = $pager_layout ->getPager (); $users = $pager->execute(); $this->view->pager = "Page: ".$pager_layout ->display('',true)." Total items: <b>".$pager->getNumResults()."</b>";
2. В роутере пропишем:
$router->addRoute('amdinUsers', new Zend_Controller_Router_Route('admin/users/index/:pager', array('module' => 'admin', 'controller' => 'users', 'action' => 'index', 'pager' => '1') ));
3. В виеве соответственно ловим:
<div class="pager_box"><?php echo $this->pager ?></div>
Уникальных посетителей темы: 172Zend Server beta 1
Сегодня Zend выпустил новый продукт, Zend Server beta1 ! Если кратко, то это «подобие» xampp, denwer и т.д. но от самой Zend.
В данный продукт включены следующие компненты:
- Apache 2.2.8
- PHP 5.2.8
- Zend Framework 1.7.4
- PHP optimizer и кучу других продуктов Zend
- Админский интерфейс для быстрой настройки и работы.
Продукт доступен для windows, linux и macOS в двух редакциях:
- Zend Server – после beta он будет выпушен как отдельный коммерческий продукт и будет платным
- Zend Server CE – бесплатный сервер для разработчиков (он не станет платным)
Для получения информации о продукте, перейдите по ссылке.
Уникальных посетителей темы: 6Декодирование строка вида %u04XX
Когда из javascript приходит строка в виде:
%u041A%u043E%u043C%u043F%u0430%u043D%u0438%u044F %u0418%u043D%u0441%u0430%u0439%u0442 (%u0418%u0440%u043A%u0443%u0442%u0441%u043A) | %u0424%u0438%u043D%u0430%u043D%u0441%u043E%u0432%u0430%u044F %u043A%u043E%u043C%u043F%u0430%u043D%u0438%u044F "%u0421%u0438%u0432%u0435%u0440
То декодировать ее можно с помощью следующей функции:
function global_decode($str) { return html_entity_decode(preg_replace_callback( '|(?:%u.{4})|', create_function( '$matches', 'return \'&#\'.hexdec(substr($matches[0], 2)).\';\';' ), $str ),ENT_QUOTES, "utf-8"); }
В итоге получим UTF8 строку (либо заменим на CP1251 и получим в windows-1251)
Уникальных посетителей темы: 45