Обновить
22
0
Dmitry Khomutov@Corpsee

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

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

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

Время на прочтение5 мин
Охват и читатели23K

Vue.js


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

Читать дальше →

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

Время на прочтение2 мин
Охват и читатели9.4K


Система непрерывной интеграции PHPCI доросла до версии 1.6 (обзор, обновление до 1.3), и я хотел бы рассказать об изменениях, произошедших с версии 1.3.
Читать дальше →

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

Время на прочтение1 мин
Охват и читатели9K


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

Читать дальше →

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

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

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

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

Читать дальше →

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

Время на прочтение4 мин
Охват и читатели88K
Эти 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 — просто метод-заглушка, заменяющий бизнес логику.
Читать дальше →

Информация

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