icon Посты по тегу php

Простая обёртка для mysqli

Напишем простую обёртку для работы с mysqli.

Должен быть установлен единственный коннекшен с БД, т.е. реализован паттерн Singleton. Мы должны иметь возможность выполнять любые запросы и получать результат в удобной форме. 

Например, если мы извлекаем значение единственного поля, то нам НЕ нужно возвращать объект mysqli_result, объект ряда (пусть даже с единственным property), а нам нужно только одно значение. Для этого будут реализованы следующие функции:

  • select — выбирает любое количество рядов
  • selectRow — выбирает только один ряд
  • selectCol — выбирает значения только из определённого ряда и возвращает их
  • selectCell — выбирает только одно поле
  • query — для выполнения любых запросов, в том числе update

Тестер регулярных выражений на php

Регулярное выражение - это текстовая строка, составленная по определённым законам и правилам. Строка состоит из символов и групп символов, метасимволов, квантификаторов и модификаторов.

В этом посте будет представлен лишь он-лайн тестер регулярных выражений, а описание спец. символов и примеры регулярных выражений будут представлены в других постах.

$pattern - строка, которая задает правило поиска, также иногда называют шаблоном или маской. (например, паттерну @abc@ - соответствуют все строки, в которых присутствуют символы abc именно в таком порядке.
$subject - строка, в которой производим поиск.

Тестер регулярных выражений будет выдавать результат выполнения функции preg_match.

int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )

Определяем язык текста с помощью cld2+python+php

cld2 (Compact Language Detection) — библиотека от компании google, написанная на С. Как заявляет google, со второй версии она стала быстрее и детектит большее количество языков. Библиотека может задетектить более 80 языков. Определяет до 3-х языков, использованных в тексте. Например, 800 байт - английский, 200 байт - французский и т.д.

Библиотека cld2 используется в популярном браузере Chrome (Chromium) для определения языка, с которого нужно перевести сайт.

Для определения языка по входной строке нам понадобится: cld2, python, php для удобства.

Парсинг robots.txt файлов на php

robots.txt — файл с инструкциями для поисковых машин. Обычно в нём указывают список url, которые нужно запретить к индексации (директива Disallow). Но, это далеко не все возможности robots.txt. В robots.txt можно:

  1. задать главное зеркало сайта с помощью директивы Host
  2. указать ссылки на файлы sitemap с помощью директивы Sitemap
  3. указать минимальный интервал в секундах с помощью директивы Crawl-delay, не ранее чем через который робот сделает запрос к следующей странице сайта. Обычно используют, если сайт не справляется с нагрузкой
  4. указать get-параметры, которые не стоит учитывать при индексации страниц с помощью директивы Clean-param
  5. задать urls, которые разрешены к индексации с помощью директивы Allow (протиповоложенность директиве Disallow)

Не устанавливается php 5.6 на debian

Если добавить в /etc/apt/sources.list:

deb http://cloudfront.debian.net/debian wheezy main
deb-src http://cloudfront.debian.net/debian wheezy main
deb http://security.debian.org/ wheezy/updates main
deb-src http://security.debian.org/ wheezy/updates main
deb http://cloudfront.debian.net/debian wheezy-updates main
deb-src http://cloudfront.debian.net/debian wheezy-updates main

Затем сделать:

apt-get update
apt-get install php5-fpm

В результате установленная версия php всё ещё php 5.4:

$ php --version
PHP 5.4.45-1~dotdeb+7.1 (cli) (built: Sep  4 2015 23:38:46) 

 

PHP 5.4 что нового — 10 новых возможностей

В кратце что нового в php 5.4.

Появились примеси (трейты). 

trait LoggerTrait
{
	public function log($string)
	{
		file_put_contents('/tmp/log', $string);
	}
}

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

Краткая запись массивов с помощью квадратных скобок без использования ключего слова array:

$arr = ['value'];
$arr = array('value'); // старая запись естественно тоже работает

 

php 5.5 что нового — 10 новых возможностей

Новые возможности php 5.5.

1. Генераторы. Введено ключевое слово yield. Позволяет значительно экономить память.

2. Хэширование паролей. Для хэширования паролей и проверки хэшей появились функции:

password_hash($password, PASSWORD_BCRYPT);
password_verify($password, $passwordhash);

3. Блок finally для exceptions. Finally выполняется всегда после try/catch независимо от того, какой блок сработал.

php 5.6 что нового — 10 новых возможностей

10 новых фич в php 5.6.

1. Скалярные выражения в константах.

class Test
{
	const DAY = 60 * 60 * 24;

	const LIST_OF_CARS = array(
		'honda',
		'bmw',
		'mercedes',
	);
}

 

Перевод kohana с php 5 на php 7

Исторически сложилось, что jeka.by был написан на фреймворке kohana 3.2 и использовал как и все на то время php 5 (то ли php 5.2 то ли 5.3). 

На дворе 2017 год, а, значит, давно пора переходить на php 7.

Тут я напишу, какие изменения пришлось внести в код проекта. 

Что говорят SOLID принципы?

SOLID — аббревиатура, объединяющая 5 принципов:

S - The Single Responsibility Principle (SRP) - принцип единственности ответственности

Принцип единственности ответственности или принцип единственности обязанности заключается в том, что класс (объект) должен выполнять строго одну задачу, иметь одну зону ответственности. Объект должен выполнять свою задачу очень хорошо, другие объекты не должны отвечать за эту задачу вовсе.

НОВЫЕ ПОЛЬЗОВАТЕЛИ