【Laminas】LaminasDbSqlRepositoryFactoryクラスを内容を変更する!

Uncategorized

どーも!marusukeです!

前回の記事(【Laminas】リポジトリクラスのリファクタリングとfindPostメソッドを実装する!)で更新したLaminasDbSqlRepositoryクラスに新しい引数を渡すために、LaminasDbSqlRepositoryFactoryクラスの内容を変更します!

LaminasDbSqlRepositoryFactoryクラスを変更する!

【Laminas】リポジトリクラスのファクトリを作る!の記事で作成したLaminasDbSqlRepositoryFactoryクラスを更新します。

LaminasDbSqlRepositoryクラスが新たに以下2つ引数を必要とするため、LaminasDbSqlRepositoryFactoryクラスに追加します。

  • ReflectionHydrator
  • Post

以下の内容に変更します。

/module/Blog/src/Factory/LaminasDbSqlRepositoryFactory.php

namespace Blog\Factory;

use Interop\Container\ContainerInterface
use Blog\Model\Post;
use Blog\Model\LaminasDbSqlRepository;
use Laminas\Db\Adapter\AdapterInterface;
use Laminas\Hydrator\ReflectionHydrator;
use Laminas\ServiceManager\Factory\FactoryInterface;

class LaminasDbSqlRepositoryFactory implements FactoryInterface
{
    public function __invoke(ContainerInterface $container, $requestedName, array $options = null)
    {
        return new LaminasDbSqlRepository(
            $container->get(AdapterInterface::class),
            new ReflectionHydrator(),
            new Post('', '')
        );
    }
}

これで、LaminasDbSqlRepositoryクラスに新たな引数を渡しインスタンス化するファクトリークラスが完成しました!

お疲れ様でした!

次の記事は、データベースから取得したPostデータをブラウザ上に表示するためのルートを設定します!

コメント

タイトルとURLをコピーしました