7 Способов улучшить свой код

Written by Yaroslav Vorozhko on March 19, 2008 – 5:35 pm -

Привет.

Как часто мы пишем код и потом замечаем, что его невозможно не только читать, а и сопровождать. Чем больше наращивается функциональности, тем меньше мы хотим продолжать работать с этим кодом. И в данной ситуации есть два решения: первое оставить все как есть и второе изменить код к лучшему, поработать над читабельностью, архитектурой, провести рефакторинг, написать тесты и т.д. В этой статье я хочу дать несколько хороших советов, как создавать приятный и легко сопровождаемый код.

Read more »


Tags: , , , , , , , , ,
Posted in Development, PHP | No Comments »

Позднее статическое связывание

Written by Yaroslav Vorozhko on March 13, 2008 – 4:48 pm -

Недавно наткнулся на интересную Late Static Bindings Explained, описывающую новую возможность OOP в PHP6, так называемое Late Static Binding (LSB).

Позднее статическое связывание также стало доступно, начиная с версии PHP 5.3.

Зачем нужен LSB

Сейчас, статическая ссылка на текущий класс, такая как self или __CLASS__ распознается используя класс в которому текущая функция принадлежит, например:

<?php
class A {
public static function who() {
     echo __CLASS__;
}
public static function test() { 
    self::who();
}
}
class B extends A {
public static function who() {
     echo __CLASS__;
}
}
B::test(); // A
?>

LSB пытается решить эту проблему используя новое ключевое слово static::, которое будет ссылкой на тот класс, который был вызван в текущий момент времени.

<?php
class A {
public static function who() {
     echo __CLASS__;
}
public static function test() { 
    static::who();
}
}
class B extends A {
public static function who() {
     echo __CLASS__;
}
}
B::test(); // B
?>

Такая конструкция вызовет метод A::test, но static:: будет ссылаться на класс B, при не статическом связывании, будет выщван метод A::who, так как $this-> следует правилал наследования, а static:: нет.

Примеры

Наиболее распостраненный случай:

Read more »


Tags: , , , , , ,
Posted in PHP | No Comments »

Zend_DB Out of memory bug

Written by Yaroslav Vorozhko on February 10, 2008 – 5:41 pm -

zend_framework_logo

Привет,

Натолкнулся сегодня на один неприятный баг в Zend_DB при работе с “длинными типами данных”, которые часто используются для хранения неопределенных по размеру данных в MySQL. Как оказалось, Zend_DB  некорректно работает с типом LONGTEXT И LONGBLOB и решение этой проблемы пока не найденно, но давайте посмотрим подробнее что все-таки можно сделать.

Read more »


Tags: , , , , , , , , , , , ,
Posted in MySQL, PHP, Tips And Tricks, ZendFramework | 2 Comments »