Phalconでnewを使わずにデータをCRUDする

Phalcon,PHP

 

私個人としてはコントローラー等であまりnew演算子を使うのが好きではないので、getInstanceしてからINSERT処理を行っています。

 

 

newでインスタンス化した場合

$hoge = new Hoge();

getInstanceした場合

まずはmodelクラスに下記を追加します。

private static $_instance;

public static function getInstance()
{
    if (!isset(self::$_instance)) {
        self::$_instance = new Hoge;
    }

    return self::$_instance;
}

その後にコントローラーやロジッククラスでgetInstanceすれば、new演算子を使わずにINSERTやUPDATE処理を行えます。

public function insertAction()
{
    $name = $this->request->getPost('name');
    $age = $this->request->getPost('age');

    Hoge::getInstance()->save(
        [
            'name' => $name,
            'age' => $age,
        ]);
}

new演算子を使うと冗長化する場合が多いですが、これだとすっきりするのでお勧めです。

Phalcon,PHP