=

21 Конспект Twig (читшит)

Twig - современный шаблонизатор для PHP, написанный автором фреймворка symfony Фабиеном Потенсером.
Синтаксис twig сходен с шаблонизатором в Django. Шаблоны компилируются в PHP классы.

Базовый синтаксис:

{{ сказать что-то }}
{% сделать что-то %}

Комментарий

{# A comment #}


Переменные, вывод

{{ sitename }}
{{ user.name }}
{{ foo['bar'] }}

Добавлено : Пн Июн 18, 2012 20:06

Автор : surg30n

Просмотров : 13837

22 Стандарты кодирования PHP (PSR)

Группа взаимодействия фреймворков (PHP-FIG) окончательно приняла рекомендации
к стандартам оформления кода на PHP.

Документ называется PSR (Proposing a Standards Recommendation - Предлагаемые рекомендации стандартов)
и разделен на 3 части.

Оригинальные тексты можно посмотреть на гитхабе.

Добавлено : Вт Июн 05, 2012 10:06

Автор : surg30n

Просмотров : 35066

23 Трейты - множественное наследование PHP

trait [treɪt], [treɪ] - характерная черта, особенность, внезапно типаж.

Трейты - механизм повторного использования кода.

PHP предоставляет программисту возможность простого наследования классов, хотя часто возникает
необходимость реализации общего, однотипного функционала для нескольких классов. У разработчика
есть как минимум два варианта реализации подобной задачи - через делегирование или вариант в лоб - наплодить повторяющегося кода, что не есть правильно.

Добавлено : Вт Май 29, 2012 12:02

Автор : surg30n

Просмотров : 10100

24 Что нового в php 5.4

PHP 5.4 подвергся значительным изменениям, большинство из которых мы рассмотрим.

Обращение к члену класса при создании объекта

$object = (new SomeWhat(param))->setStyle(20)->setText('Hello')->load();


Сокращенный синтаксис создания массива

$a = [1, 2, 3];
$b = ['key' => 'value', 'key1' => 'value1', 'keyN' => 'valueN'];


Разыменование массива

Теперь возможен такой синтаксис обращения к элементу возвращаемого функцией массива

Добавлено : Вт Май 29, 2012 12:01

Автор : surg30n

Просмотров : 7693

25 Mysql скорость соединения localhost

Время установления соединения с бд mysql на виндовом хосте больше 1 сек?
Mysql слушает только на локалхосте, набросаем скрипт проверка соединения:

core::timer('mysql_connect');
 
    $connection = new mysqli(
        'localhost',
        $dbcfg['login'],
        $dbcfg['password'],
        $dbcfg['database']
    );
 
 core::dprint('time : ' . core::timer('mysql_connect'));


Время соединения:

#time : 1.018641

Добавлено : Вт Апр 24, 2012 13:22

Автор : surg30n

Просмотров : 4015

26 Печальное сравнение строк в PHP

Сравнение хэша пароля в пхп? Без проблем:

if (md5($password) == $hash) {
  print "OK!\n";
}


$hash = md5 существующего пароля.
$password = "ximaz" (для примера, MD5 этого пароля равен "61529519452809720693702583126814")

PHP при сравнении приведет аргументы, "похожие на числа" к типу INT.
Но, так как числовое значение хэша не помещается в 32 бита, интерпретатор приравняет его к 0 (нолю).
В итоге получается что сравниваться будет только первая половина хэшей!

Добавлено : Вт Апр 10, 2012 14:37

Автор : surg30n

Просмотров : 4717

27 Скорость выборки order by rand() в MySQL

Дано: таблица mysql 1К записей
Задача: нужно выбрать случайные 5 записей,

SELECT * FROM table ORDER BY rand() LIMIT 0,5 --0.014628


Запрос достаточно медленный, попробуем по-другому.

Попробуем выбрать произвольные идентификаторы до основного запроса данных

SELECT id FROM table ORDER BY rand() LIMIT 1; --0.000592
SELECT id FROM table ORDER BY rand() LIMIT 1; --0.000385
SELECT id FROM table ORDER BY rand() LIMIT 1; --0.000374
SELECT id FROM table ORDER BY rand() LIMIT 1; --0.000380
SELECT id FROM table ORDER BY rand() LIMIT 1; --0.000377
-- всего 0.002075
 
-- или так, быстрее
SELECT id FROM table ORDER BY rand() LIMIT 0,5 --0.000483
 
-- сама выборка
SELECT * FROM table WHERE id IN (80,413,81,127,113) --0.000464

Добавлено : Вт Апр 10, 2012 10:33

Автор : surg30n

Просмотров : 5937

28 Как перевести число из экспоненциальной формы в вещественную

Есть число 0.000090, представленное в экспоненциальной форме как 9.0E-5.
Нужно перевести его обратно в вещественную форму.

Есть как минимум два способа:

$a = number_format(9.0E-5,6,'.','')
$b = sprintf('%f', 9.0E-5)

Добавлено : Пт Апр 06, 2012 12:38

Автор : surg30n

Просмотров : 6685

29 Написание тестируемого кода (вебинар)

Зендоводы опубликовали вебинар раскрывающий аспекты написания легкотестируемого кода и как
это сочитается с хорошим объектно ориентированным программированием.

Тобиас Шлит (61 мин)

http://www.zend.com/en/webinar/PHP/70170000000bk4b-testablecode-20120315.flv

Добавлено : Чт Мар 22, 2012 10:01

Автор : surg30n

Просмотров : 1478

30 Битые таблицы myisam при переезде

После смены сервера возникла проблема с некоторыми таблицами myisam:

mysql> select * from ph_tags;
ERROR 1034 (HY000): Incorrect key file for table 'ph_tags'; try to repair it


Причем ни repair через клиент mysql, ни myisamchk

find /var/db/mysql -type f -name 'ph_tags.MYI' -exec myisamchk --force -o -r -v {} \;


не cмогли восстановить таблицу.

mysql> repair table ph_tags;
+------------------+--------+----------+----------------------------------------------------------+
| Table            | Op     | Msg_type | Msg_text                                                 |
+------------------+--------+----------+----------------------------------------------------------+
| titsgtfo.ph_tags | repair | Error    | Incorrect key file for table 'ph_tags'; try to repair it |
| titsgtfo.ph_tags | repair | error    | Corrupt                                                  |
+------------------+--------+----------+----------------------------------------------------------+

Добавлено : Сб Мар 17, 2012 0:36

Автор : surg30n

Просмотров : 2486

Поиск по сайту