slim

Slim3からSlim4へのバージョンアップの際のメモ

現在担当している会社のシステムはPHPをSlimを利用している。そのシステムをSlim3からSlim4にバージョンアップした際に調べた事などを折角なのでブログに残しておく ドキュメント 下記は一通り目を通した slim4のドキュメント Slim 4 Documentation - Slim F…

PHPのslim3でEloquent\Modelを使用したモデルの実装

illuminate/databaseはEloquentというORM機能も利用できるのでslim3での利用法を記述github.com以下のようにモデルクラスを作成します。 # src/Sample/Model/User.php

PHPのslim3でデータベースに接続する

今回はデータベースに接続する設定を追加します。DBに接続するライブラリは以下を使います。github.comcomposer.jsonに以下の設定を追加してcomposer updateします。 composer.json @@ -15,6 +15,7 @@ "php": ">=5.5.0", "slim/slim": "^3.1", "slim/twig-vi…

PHPのslim3にtwigの設定を追加

前回TOPページのコントローラの追加を行ったので、今回はテンプレートの追加をします。 テンプレートにはtwigを使用します。composer.jsonを更新してtwigのパッケージをインストールします $ vi composer.json "require": { "php": ">=5.5.0", "slim/slim": …

PHPのslim3で環境構築

久しぶりにslim3で素のフォームを作るまでを勉強しなおしたので筆をとりました。 この記事ではコントローラの追加までを記述します。slimはマイクロフレームワークですが、公式でスケルトン機能を用意されているのでそれを利用します。github.comスケルトン…

slimでknp-componentsのpaginatorを使う(データベースアクセス版2)

前回の記事ではページ捲り用のクラスを作ってページ捲り機能を実装してました。 今回はデータの取得/計算をコントローラで行いpagination機能だけを使いたい場合の例を記します。 素のphpの場合、この実装がやりやすいと思います。Controllerの変更 リミット…

slimでknp-componentsのpaginatorを使う(データベースアクセス版)

前回の記事では最初から全データを用意してページ捲りを実装してました。 ただ、データベースに対象データが存在する場合は全件データを取得するのは現実的ではありません。 データベースからデータの一部を取得する形でページ捲りを実装する方法を記します…

slimでknp-componentsのpaginatorを使う(非データベースアクセス版)

knp-componentsを利用してページ捲りを実装する方法を記す。 今回は[domain]/page/1でアクセスできるページ捲りテスト用のページを作成し、a~zまでのアルファベットを表示するページを作成します。knp-componentsのインストール $ vi composer.json "requir…

slimでphpunit使用して結合テスト

今回は、結合テストを行う方法を記す。 goutteはブラウザエミュレートしてくれるphpライブラリです。 今回はgoutteを使ってブラウザのリクエストをエミュレートして正常に表示が行われるかのテストを行います。goutteのインストール $ vi composer.json "req…

slimでphpunit使用してユニットテスト

今回はphpunitをインストールした上で、ユニットテストを行う手順を記します。 ユニットテストはメソッド単体だったりの小さい粒度のテストで 今回はsrc/Taka512/Services/NameService.phpのgetNameメソッドをテストします。 サービスクラスは以下のような感…

slimでpimpleを使ってデータベースに接続

pimpleを使ってデータベースへの接続を行いデータベースからデータを取ってくるようにします。データベースにテーブルとデータを追加MYSQLのhogeデータベースにユーザ「hoge」パスワード「hogepass」で接続できるように設定してます。 create databases hoge…

slimでpimpleを使ってroutingを行う

pimpleを使ってslimのroutingを構造化してみます。routes.phpの作成configディレクトリを作成し、routing情報を記述するroutes.phpを作成します。 $ mkdir config $ vi config/routes.php get('/', function() use ($container) { $container['ContentsContr…

slimでネームスペースを利用するように修正

プロジェクトディレクトリの構造化を行っていきます。 今回は前回index.phpに作成したNameServiceクラスをファイルから分離して、ネームスペースを利用するように修正します。composer.jsonの修正autoloadの項目を追加します。srcが設定ディレクトリで「Taka…

slimでpimpleを使う

pimpleはphpでDIコンテナを実現するためのライブラリです。 今回はslimでpimpleを使ってみます。インストールcomposer.jsonにpimpleを追加 $ vi composer.json "require": { "slim/slim": "2.*", "slim/extras": "2.0.*", "twig/twig": "1.*", "pimple/pimpl…

slimでログを出力

前回インストールしたslim/extrasを利用してログ出力を行う設定のメモログディレクトリを作成 $ mkdir -p logs $ chmod 777 logsindex.phpを編集 $app = new Slim(array( 'view' => new Twig, 'templates.path' => '../templates', 'log.writer' => new \Sli…

slimでtwig連携

最近slimを使う機会がありそうなのでphpのマイクロフレームワークであるslimを基礎から触った。 まずはインストールしてslimとtwigで連携するところまで行う。composerからのslimのインストール $ curl -s http://getcomposer.org/installer | php $ vi comp…