PHPのデプロイメントツールDeployerを実行すると下記のエラーが出る事があります。 ```language-bash $ dep deploy Deploy locked. Execute "dep deploy:unlock " to unlock. ``` ## 原因 Deployerはデプロイメントを実行時に多重実行されな...


Laravel5.5のコントローラー入門

2018年3月3日 | カテゴリ: Laravel
この記事では、PHPのフレームワークであるLaravelで、MVCのコントローラーについての基本を説明します。 ## コントローラの作成 Laravelでは、artisanの`make:controller`コマンドで、MVCのコントローラーに相当するクラスのひな型を作ることがで...


Laravel5.5のルーティング入門

2018年3月2日 | カテゴリ: Laravel
この記事では、PHPのフレームワークであるLaravelのルーティングの基本について説明します。 ## インストール直後のルーティング Laravelプロジェクトを作成した直後に`php artisan serve`コマンドを実行し、ブラウザからhttp://localhost:8000/へ...


Laravelのcomposer.jsonを見ていたら見つけたのでメモ。 以下のワンライナーPHPスクリプトで、.envというファイルが無かったら、ファイル".env.example"を.envにコピーすることができます。 ```language-php php -r "file_exists('.env') || copy('...


PHPフレームワークのLaravelをWindows環境で使っていて、php artisan serveコマンドを実行すると下記のエラーが出て起動できなかったので、確認&対処した結果を書いておきます。 ## 出力されたエラー `php artisan serve`コマンドで起動させようと...


PHPのパッケージ管理はComposerの登場によって劇的に改善されましたが、Composerは依存関係を解決するのに非常に時間がかかり、パッケージインストール時にパフォーマンスの問題を引き起こすことが有ります。 Composerの性能向上に関するTIpsがhax0r(...


先ほど、ふとファイル内に"<?PHP"だけの文字列だけを含むphpスクリプトを実行してみた。 すると、スクリプトの出力に"<?PHP"という文字自体が出力されたので、気になって調べてみた。 (本記事は、諸事情によって"<?PHP"を全角で書いて...


Quizletで管理されている単語帳をExcelに出力したかったため、PHPのGoutteパッケージを使用してtsv形式に変換するスクリプトを作成しました。 ※PHPでGoutteパッケージの使い方自体は、[こちらの記事](https://akamist.com/blog/archives/1700)を参考に...


今回は、PHPのスクレイピングライブラリであるGoutteを使用して、指定したURLに対するWebページのタイトルを取得してみます。 ## Goutteパッケージのインストール Goutteパッケージはcoposerのfabpot/goutteパッケージとして提供されています。 c...


PHPでComposerを使用した外部パッケージ管理を行っているとき、`composer update`コマンドを使用することで、パッケージのバージョンアップをまとめて行うことができます。 ですが、テストの都合などで全てのパッケージを一度に最新にせず、特定パッケ...


最近のPHPプロジェクトでは、外部ライブラリを管理するのにComposerを利用することが多いです。 Composerを利用とバージョンや依存関係の自動解決などを自動に行ってくれるため非常に便利ですが、Composerではパッケージを自由に登録できるため、予期せ...


LaravelでORマッパーとして、Eloquentを使用ている場合、タイムゾーンを変更するには、config/app.phpのtimezoneを'UTC'から'Asia/Tokyo'に変更すれば、DBに登録される時刻がJSTになります。 ですが、Laravelを使わずに、Composerを使ってilluminate/da...


PHPのフレームワークLaravelに付属のEloquentでは、デフォルトでデータの登録・更新時刻をそれぞれ、created_at, updated_at列で管理してくれます。 通常はこれで問題ないのですが、履歴テーブルのようにデータの登録だけが行われ、更新されない事が事...


PHPのフレームワークであるLaravelでは、DBアクセスを行うのにEloquentやQueryBuilderという便利なモジュールがあります。 ですが、プロジェクトによってはLaravel以外のマイクロフレームワークや、フレームワークなしの環境だけども、ORマッパーのEloq...


[PHP]Eloquentで日付に関する列定義の命名規則

2017年11月13日 | カテゴリ: PHP | タグ: ,
PHPのORマッパーであるEloquentでは、データの登録時刻・更新時刻と、データの論理削除(SoftDelete)を行うときの削除時刻を自動で更新してくれる便利な機能があります。 今回は、これらの機能を最小の手間で(=Eloquentのデフォルト設定で)利用するため...


PHPのSlim3フレームワークでslim/twig-viewパッケージを使用時、*.twigのビューファイルを変更してもブラウザで表示したときに変更内容が反映されないときがあります。これは、twigがビューのファイルを*.phpに変換した結果をキャッシュしており、元の*.tw...


PHPでルーティングを行うパッケージであるnikic/FastRouteパッケージを利用して、controller-actionスタイルのルーティングを行う方法を説明します。 nikic/FastRouteパッケージは、PHP本体の開発者であるNikitaさんが開発していて、Slim3 Framework...


PHPのマイクロフレームワークであるSlim Frameworkのバージョン3.9.0が、2017/11/04にリリースされました。バージョン3.9.0での変更点は主に不具合修正で、以下のような修正が行われています。 - Requestオブジェクトに任意のHTTPメソッド名を使用でき...


この記事では、PHPでHttp通信を行うためのコンポーネントである、Guzzleを使うための手順を説明します。PHPに慣れていない人のために、PHPのパッケージマネージャであるcomposerのインストールから説明しています。 ### 確認環境環境のインストール 今...


PHPのプログラムを実行するとUnexpected T_STRINGエラーが出る場合があります。 このエラーが出た場合にチェックするポイントを説明します。 ## エラーが出た場所を確認する 以下のようにエラーが出るので、まずはこのエラーメッセージよりエラー...


PHPのSlim3 Frameworkでcookieを管理するためのクラスです。 stackoverflowにあったコードを元に一部改修してます。 https://stackoverflow.com/questions/35257522/slim-3-framework-cookies ```language-php


Slim3 FrameworkでPDOを使用したDBアクセスを行いたい場合があります。 Slim3では、システム全体で使用するオブジェクトの管理をDIコンテナに任せることができる為、DIコンテナ経由でPDOオブジェクトの取得を行う方がスマートです。 下記は、PDOオブ...


PHPのマイクロフレームワークである、Slim3 Frameworkでクライアントから渡された、GET/POSTパラメータを受け取る方法はいくつかの方法があります。 まずは以下の方法で、すべてのパラメータを配列として取得できます。 ```language-php $paramValue ...


[PHP]Slim3でリダイレクトを行う

2017年8月15日 | カテゴリ: SlimFramework
PHPのSlim3 Frameworkで302リダイレクトを行いたい場合があります。 Slim3でリダイレクトを行うときは、下記のように$response->withRedirect()メソッドを利用すればよいです。 ``` language-php use \Psr\Http\Message\ServerRequestInterface as Re...


[PHP]arrayをXMLに変換する関数

2017年8月15日 | カテゴリ: PHP
PHPでarrayをXMLを調べていたところ、意外と探せない。 PEARのXML/Serializerライブラリを使うのはさすがにレガシーすぎるので、stackoverflowで見つけたSimpleXMLElementクラスを利用したものを使うことにしました。下記Q/Aの回答に提示されていたコー...


Slim Frameworkで応答データをjsonp形式で返したい場合は、下記のようにすればよいです。jsonpのcallback関数名は、通常クライアントから指定してもらうことが多いです。 ```language-php $app->get('/', function (Request $request, Response $respons...


SlimFrameworkでは、スクリプトの途中でエラーが出たとき以下のメッセージを画面に表示するだけで、エラーのスタックトレースなど詳細を画面に表示しません。 ```language-bash Slim Application Error A website error has occurred. Sorry for the te...


PHPを使ったプログラムで、簡単なWebAPIを実装したい場合があります。 小さなWebAPIサーバなど、シンプルなサービスを実装する時にSlim Frameworkのようなマイクロフレームワークは助けになりますが、クライアントの認証がネックになることがあります。...


phpからyamlファイルを読む機会があったのですが、symfony/yamlパッケージを使ってみたら便利でした。 パッケージ名に"symfony"とついていますが、symfonyフレームワークを使わなくても、このパッケージだけ単独で利用できます。 (さらに…)


PHPの通信ライブラリであるGuzzleHttpで通信の送受信内容をデバッグしたい場合があります。 デバッグ出力するためには、get()やpost()など通信実行のメソッドの第二引数に、'debug'=>trueのパラメータを追加すればよいです。 (さらに…)


PHPでComposerといえばパッケージの依存性管理を行うためのツールですが、パッケージ管理以外にオートロードの機能も備えています。 今回はcomposerを使って、何も依存パッケージを利用せず、オートロードの機能だけ利用したプログラムを作ってみます。...