Browsing category PHP

ORDER BY RAND() in Doctrine without implement a new Doctrine function


Предположим, что нам нужно выбрать N строк из базы данных и отсортировать их случайным образом. При этом у нас нет возможности (или желания) реализовывать функцию rand() в Doctrine.  В MySQL эта задача решается очень просто: SELECT column FROM table ORDER BY RAND() LIMIT 10 Но если вы используете DQL (Doctrine Query Language) это будет не

Laravel: Like для коллекций


В коллекциях Laravel 5.1 нет функции like для коллекций, но можно написать подобное поведение при помощи filter. $searchBy = ‘gr’; $data = collect(array(‘name’ => ‘gregg’, ‘name’ => ‘john’, ‘name’=> ‘alice’)); $data = $data->filter(function ($item) use ($searchBy) { return (bool) preg_match(‘#^’.preg_quote($searchBy).’.*$#us’, $item[‘name’]); }); SQL like preg_match % .* _ .  

PHP Lint


Проверка PHP-кода на ошибки, cli. find . -type f -name ‘*.php’ -exec php -l ‘{}’ ‘;’ log=`find . -type f -name ‘*.php’ -exec php -l ‘{}’ ‘;’ | grep -v ‘No syntax ‘`; if [ x»${log}» != x ]; then exit 1; else echo «No syntax errors detected in PHP scripts»; fi

«405 method not allowed» IIS for Restful methods


По-умолчанию в IIS запрещены методы, которые используется в Restful API, например DELETE, PUT и другие. Для того, что бы разрешить эти методы нужно: В диспетчере IIS открыть Сопоставления обработчиков Найти обработчик PHP, зайти в его настройки Ограничение запроса… Команды Прописать необходимые методы, например: GET,POST,PUT,DELETE, а также можно разрешить все.

Flat array to nested in php


Requirements = PHP 5.3 function buildTree($flat, $pidKey, $idKey = null) { $grouped = array(); foreach ($flat as $sub){ $grouped[$sub[$pidKey]][] = $sub; } $fnBuilder = function($siblings) use (&$fnBuilder, $grouped, $idKey) { foreach ($siblings as $k => $sibling) { $id = $sibling[$idKey]; if(isset($grouped[$id])) { $sibling[‘children’] = $fnBuilder($grouped[$id]); } $siblings[$k] = $sibling; } return $siblings; }; $tree =

Автоматическое форматирование кода в соответствии со стандартами PSR в PHPStorm


Пользователь Fabien Potencier (fabpot) разработал инструмент, который автоматически форматирует и перестраивает ваш код следуя стандартам PSR. Этот пост и инструкция помогут вам установить этот инструмент и добавить его в PHPStorm, добавить сочетание клавиш что бы выполнять проверку текущего открытого файла.

Добавление тега rel=canonical в OpenCart


OpenCart бесплатная система для создания интернет-магазинов. Насмотря на свою поулярность, некотоые функции отсутствуют. Это особенно заметно в SEO. OpenCart имеет инструмент добавления тега rel=”canonical” на страницы товаров, но нет возможности добавить данный тег на страницу категорий или же на не менее важную домашнюю страницу. Если установить OpenCart без исправления этой проблемы, поиск Google по запросу

MySQL 5.6 & PHP 4.4


В MySQL 5.6 значительно поменялись настройки безопасности. При попытке соединения с базой данных из PHP 4.4.x появляется ошибка: Client does not support authentication protocol requested by server; consider upgrading MySQL client Что бы заставить работать PHP 4.4 вместе с MySQL 5.6 нужно: Добавить в файл my.conf параметр skip-secure-auth после чего нужно перезапустить сервис MySQL Обновить информацию о пароле пользователя.

О API Яндекс.Фоток. Как получить Token из php


У нас (как и у всех) был новый год. Я давно ничего не писал, так как праздники, а потом сессия (сейчас я студент), но вот она закрыта и можно что-то интересное сюда написать. Сейчас занялся Яндексом, а точнее его api для приложений. Первое что пригодилось — Api Яндекс.Фоток. Этот интерфейс позволяет общаться с сервисом хранения

PHP: Правильный сдвиг часов


Несколько дней назад понадобилось написать скрипт, который учитывал бы время с каким-либо интервалом. Время определить удалось, но возникла проблема как задать точность. Например время определилось как 0 часов. Тогда при точности +- 2 будет интервал от -2 до 2 часов. Но что такое минус 2 часа? Такого не бывает! Для исправления этой ситуации потребовалось написать

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