PHPのデプロイメントツールDeployerを実行すると下記のエラーが出る事があります。
```language-bash
$ dep deploy
Deploy locked.
Execute "dep deploy:unlock " to unlock.
```
## 原因
Deployerはデプロイメントを実行時に多重実行されな...
## 事象
PHPのデプロイメントツールであるDeployerを実行したところ、にエラー「Call to undefined function Deployer\Utility\posix_setsid()」が発生し、デプロイが行えなかった。
## プログラム
エラーが出る最小のプログラム(deploy.php)は以...
## 事象
PHPのComposerを実行時に、エラー「sh: git: command not found」が発生した。
```language-bash
[vagrant@localhost www]$ composer create-project fuel/fuel blog
Installing fuel/fuel (1.8.0.1)
Failed to download fuel/fuel f...
## 発生したエラー
composer create-projectを行ったら、以下のように`Could not delete ./`のRuntimeExceptionが発生する。
```language-bash
$ composer create-project fuel/fuel . -vvv
...
Executing command (CWD): git clone --no-checkou...
この記事では、PHPのフレームワークであるLaravelで、MVCのコントローラーについての基本を説明します。
## コントローラの作成
Laravelでは、artisanの`make:controller`コマンドで、MVCのコントローラーに相当するクラスのひな型を作ることがで...
この記事では、PHPのフレームワークであるLaravelのルーティングの基本について説明します。
## インストール直後のルーティング
Laravelプロジェクトを作成した直後に`php artisan serve`コマンドを実行し、ブラウザからhttp://localhost:8000/へ...
PHPのパッケージマネージャであるcoposerでは、`composer global require`コマンドを使用することで、パッケージをシステム全体の物としてインストールできます。
```language-bash
> composer global require laravel/installer
Changed current dir...
PHPフレームワークのLaravelで、使用しているフレームワークのバージョンを確認するには、atrisanコマンドで"-V"オプションを指定すればよいです。
```language-php
$ php artisan -V
Laravel Framework 5.6.4
```
Laravelのプログラムを実行すると、下記のエラーが出ることが有ります。
```language-php
RuntimeException
No application encryption key has been specified.
```
これはエラーメッセージ通り、Laravelプロジェクトに暗号化キーが未設定のため...
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のフレームワークであるSlim Frameworkで、ブラウザからcsv/tsvなどのファイルをダウンロードする方法です。
```language-php
$app->get('/tsv_test', function (Request $request, Response $response, array $args) {
// TSVデータを作成す...
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...
Illuminate/DatabaseパッケージのgetQueryLog()は、実行されたSQLとパラメータに加えて、処理時間をtimeのキーで取得できます。手元の環境で1~2ぐらいの値が帰ってくるので絶対ミリ秒単位だろうと思ったのですが、気になったので調べました。
結果を先...
PHPのフレームワークLaravelで、フレームワークのインストールから、DBの設定とcliでのDB操作まで行ってみます。
今回、接続先のDBはVagrant上に構築したMySQLを利用しています。
VagrantでのMySQLデータベース作成は、下記の記事を参考にすると`v...
PHPのORマッパーであるEloquentでは、データの登録時刻・更新時刻と、データの論理削除(SoftDelete)を行うときの削除時刻を自動で更新してくれる便利な機能があります。
今回は、これらの機能を最小の手間で(=Eloquentのデフォルト設定で)利用するため...
Laravel5.5で`php artisan migrate`した時に下記のエラーが発生することがあります。
```language-bash
$ php artisan migrate
[Illuminate\Database\QueryException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key wa...
PHPのSlim3フレームワークでslim/twig-viewパッケージを使用時、*.twigのビューファイルを変更してもブラウザで表示したときに変更内容が反映されないときがあります。これは、twigがビューのファイルを*.phpに変換した結果をキャッシュしており、元の*.tw...
PHPのパッケージマネージャであるcomposerでdump-autoloadコマンドを実行したとき、以下のように「A non-empty PSR-4 prefix must end with a namespace separator」エラーが出る場合があります
```language-php
$ composer dump-autoload
Generating...
PHPのSlim3フレームワークで、slim/twig-viewパッケージを使用時に、*.twigファイルで`{{ dump(value)}}`のようにdump関数を使おうとすると、下記のエラーになる場合があります。
```language-bash
Type: Twig_Error_Syntax
Message: Unknown "dump" fu...
phpでは、php.iniファイルの中でextensionを指定することができます。
exetensionで指定されたモジュールのバージョンを確認するには、--riオプションを使用すると便利です。
```language-bash
$php --ri memcached | grep Version
Version => 3.0.1
...
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のviewテンプレートであるTwigを使おうとしたとき、以下のエラーが出ることがあります。
```language-php
Argument 1 passed to Twig_Filter::__construct() must be an instance of string, string given,
called in /path/to/vendor/twig/twig/...
PHPでSlim3フレームワークを使ったプロジェクトを作る場合、プロジェクト構成のひな型としてslim/slim-skeletonパッケージがあります。今回は、プロジェクトひな型として、slim-skeletonが役立つか評価したい人のため、プロジェクトを構成している全ファイ...
この記事では、PHPでHttp通信を行うためのコンポーネントである、Guzzleを使うための手順を説明します。PHPに慣れていない人のために、PHPのパッケージマネージャであるcomposerのインストールから説明しています。
### 確認環境環境のインストール
今...
Vagrantを使って、CentOS7.3+PHP7.1環境を、素早くコマンド1つで構築する為の手順です。
## 手順
1. vagrantをインストールする
2. 下記の内容のファイルを"Vagrantfile"の名前で作る
```language-ruby
Vagrant.configure("2") do |config|...
http://inet-ip.info/というサイトでは、特定のURLに対してHTTPリクエストを投げることで自分のPCのグローバルIPを取得することができます。
Linuxからcurlコマンドで確認する場合は以下のようにな形になります。
```language-bash
# curl http://ine...
CentOS7の環境にPHP7をインストールする場合、以下のようなコマンドを実行するかと思います。
```language-bash
sudo yum install epel-release -y
sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
sudo yum install --en...
phpでは、`php -l`コマンドでスクリプトにエラーがないか、構文チェックを行うことができます。
たくさんのファイルがある場合、findコマンドと組み合わせることで、指定したディレクトリ以下の全ファイルに対して、構文チェックを行えます。
下記の...
PHPのプログラムを実行するとUnexpected T_STRINGエラーが出る場合があります。
このエラーが出た場合にチェックするポイントを説明します。
## エラーが出た場所を確認する
以下のようにエラーが出るので、まずはこのエラーメッセージよりエラー...
PHPのSlim3 Frameworkでcookieを管理するためのクラスです。
stackoverflowにあったコードを元に一部改修してます。
https://stackoverflow.com/questions/35257522/slim-3-framework-cookies
```language-php
PHPのSlim3 Frameworkでは、以下のようなコードでgetリクエストが走った時のコールバック処理内で、DIコンテナへアクセスすることができます。
```language-php
$app = new \Slim\App();
// myServiceをDIコンテナを取得
$container = $app->getCont...
PHPのマイクロフレームワークであるSlim3 Frameworkでは、PimpleパッケージベースにしたDIコンテナが用意されています。
今回はSlim3で、DIコンテナからインスタンス取得時に、呼び元からコンストラクタ引数を渡す方法を説明します。
## 通常のDI...
Slim3 FrameworkでPDOを使用したDBアクセスを行いたい場合があります。
Slim3では、システム全体で使用するオブジェクトの管理をDIコンテナに任せることができる為、DIコンテナ経由でPDOオブジェクトの取得を行う方がスマートです。
下記は、PDOオブ...
PHPのマイクロフレームワークである、Slim3 Frameworkでクライアントから渡された、GET/POSTパラメータを受け取る方法はいくつかの方法があります。
まずは以下の方法で、すべてのパラメータを配列として取得できます。
```language-php
$paramValue ...
Slim Framworkを使ったサンプルコードをネットなどで探してきた再、$appオブジェクトを作成する際に、下記のようなコードが例示されている場合があります。
```language-php
PHPのSlim3 Frameworkで302リダイレクトを行いたい場合があります。
Slim3でリダイレクトを行うときは、下記のように$response->withRedirect()メソッドを利用すればよいです。
``` language-php
use \Psr\Http\Message\ServerRequestInterface as Re...
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のマイクロフレームワークでであるSlim Frameworkでは、標準ではViewに相当するコンポーネントが用意されていません。マイクロなだけに、ルーティング処理中でViewの出力まで行っても良いのですが、最低限のMVCによるViewの分離ぐらいは行いたい場合が...
PHPでstrpos()関数を実行したとき、下記の警告が表示される場合があります。
```language-bash
PHP Warning: strpos(): Empty needle in...
```
これは、strpos()の第二引数が、空文字列のときに発生します。
(さらに…)
PHPを使ったプログラムで、簡単なWebAPIを実装したい場合があります。
小さなWebAPIサーバなど、シンプルなサービスを実装する時にSlim Frameworkのようなマイクロフレームワークは助けになりますが、クライアントの認証がネックになることがあります。...
phpからyamlファイルを読む機会があったのですが、symfony/yamlパッケージを使ってみたら便利でした。
パッケージ名に"symfony"とついていますが、symfonyフレームワークを使わなくても、このパッケージだけ単独で利用できます。
(さらに…)
PHPでヒアドキュメントを使ったスクリプトを書いたとき、、ヒアドキュメントの次のステートメントで、下記のようなエラーが出る場合があります。
```language-bash
PHP Parse error: syntax error, unexpected end of file xxx.php line x
Parse err...
PHPで、渡されたパラメータの型がintまたはnullであることを、スクリプトで表明するための表記方法です。
## php 7.1の場合
php 7.1では、null許容型が用意されているので、"?int"のような指定方法が可能です。
```language-php
public function s...
PHPでGuzzleHttpを使用して、jsonのデータを送信したい場合、下記のコードでリクエストを投げることができます。
(さらに…)
PHPの通信ライブラリであるGuzzleHttpで通信の送受信内容をデバッグしたい場合があります。
デバッグ出力するためには、get()やpost()など通信実行のメソッドの第二引数に、'debug'=>trueのパラメータを追加すればよいです。
(さらに…)
PHPのスクリプトでは、先頭にdeclare,namespace,useなど複数の定義を書く必要がある場合があります。
これらの定義を複数書く場合、どの順番で書くのが正しいでしょうか?
(さらに…)
PHPでComposerといえばパッケージの依存性管理を行うためのツールですが、パッケージ管理以外にオートロードの機能も備えています。
今回はcomposerを使って、何も依存パッケージを利用せず、オートロードの機能だけ利用したプログラムを作ってみます。...
PHPでのHTTPリクエストを行うライブラリにGuzzleHTTPが有ります。
GuzzleHTTPでは、通常以下のようなコードで応答テキストを出力することが多いです。
```language-php
投稿ナビゲーション