Как стать автором
Обновить
23
0
Dmitry Khomutov @Corpsee

Web-разработчик

Отправить сообщение

Создание викторины на Vue.js

Время на прочтение 5 мин
Количество просмотров 22K

Vue.js


Я не понимаю Angular. Мне очень нравится React, но я все еще изучаю его основы. Давайте попробуем Vue. Я расскажу, как я сделал микро-викторину.

Читать дальше →
Всего голосов 13: ↑12 и ↓1 +11
Комментарии 12

PHPCI обновился до версии 1.6

Время на прочтение 2 мин
Количество просмотров 9.3K


Система непрерывной интеграции PHPCI доросла до версии 1.6 (обзор, обновление до 1.3), и я хотел бы рассказать об изменениях, произошедших с версии 1.3.
Читать дальше →
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 8

PHPCI обновился до версии 1.3

Время на прочтение 1 мин
Количество просмотров 8.9K


Спешу сообщить, что сегодня система непрерывной интеграции PHPCI, о которой я уже рассказывал на хабре, обновилась до версии 1.3.

Читать дальше →
Всего голосов 15: ↑13 и ↓2 +11
Комментарии 13

PHPCI: Система непрерывной интеграции для PHP-проектов

Время на прочтение 3 мин
Количество просмотров 24K
image

Совсем недавно вышла из бета-версии новая система непрерывной интеграции для PHP-проектов с открытым исходным кодом — PHPCI (текущая версия — 1.1.0), она вскользь упоминалась в дайджесте PHP №21.

Я уже какое-то время эксперементирую с этой системой, поэтому хочу представить вам небольшой ее обзор, тем более что на Хабре нет ни одной статьи о ней.

Читать дальше →
Всего голосов 36: ↑32 и ↓4 +28
Комментарии 22

Active Record против Data Mapper-а для сохранения данных

Время на прочтение 4 мин
Количество просмотров 80K
Эти 2 шаблона проектирования описаны в книге Мартина Фаулера «Шаблоны корпоративных приложений» и представляют собой способы работы с сохранением данных в объектно-ориентированном программировании.

Пример шаблона Active Record


class Foo
{
    protected $db;
    public $id;
    public $bar;
     
    public function __construct(PDO $db)
    {
        $this->db = $db;
    }
 
    public function do_something()
    {
        $this->bar .= uniqid();
    }
 
    public function save()
    {
        if ($this->id) {
            $sql = "UPDATE foo SET bar = :bar WHERE id = :id";
            $statement = $this->db->prepare($sql);
            $statement->bindParam("bar", $this->bar);
            $statement->bindParam("id", $this->id);
            $statement->execute();
        }
        else {
            $sql = "INSERT INTO foo (bar) VALUES (:bar)";
            $statement = $this->db->prepare($sql);
            $statement->bindParam("bar", $this->bar);
            $statement->execute();
            $this->id = $this->db->lastInsertId();
        }
    }
}
 
//Insert
$foo = new Foo($db);
$foo->bar = 'baz';
$foo->save();

В этом упрощенном примере, дескриптор базы данных вводится в конструкторе Foo (Использование инъекции зависимостей здесь позволяет тестировать объект без использования реальной базы данных), и Foo использует его, чтобы сохранять свои данные. Do_something — просто метод-заглушка, заменяющий бизнес логику.
Читать дальше →
Всего голосов 41: ↑36 и ↓5 +31
Комментарии 62

Информация

В рейтинге
Не участвует
Откуда
Новосибирск, Новосибирская обл., Россия
Зарегистрирован
Активность