Slim3 FrameworkでPDOを使用したDBアクセスを行いたい場合があります。
Slim3では、システム全体で使用するオブジェクトの管理をDIコンテナに任せることができる為、DIコンテナ経由でPDOオブジェクトの取得を行う方がスマートです。
下記は、PDOオブ...
Visual Studioで、AWS Toolkit for Visual Studioを使用してAWS Lambdaのプロジェクトを作成しようとしたとき、下記のエラーが出るときがあります。
```language-bash
---------------------------
Microsoft Visual Studio
---------------------...
Ansibleでは単純なファイルのコピーだけでなく、templateコマンドを使うことによって可変部を含むファイルをコピーできるテンプレート機能を使用することができます。
## テンプレートの仕組みについて
- templateコマンドを使うと、Jinja2のテ...
PHPのマイクロフレームワークである、Slim3 Frameworkでクライアントから渡された、GET/POSTパラメータを受け取る方法はいくつかの方法があります。
まずは以下の方法で、すべてのパラメータを配列として取得できます。
```language-php
$paramValue ...
今回は、AWSのcliユーティリティを使用して、複数のec2サーバに対してコマンドを実行します。例として、タグに"role=web"が指定された全てのec2インスタンスに対してuptimeコマンドを実行してみます。
## 最初にまとめ
結果だけ知りたい人のために結論...
AWSのクラウド環境をコマンドラインから操作するために、awsコマンドというものがあります。
検索系のコマンドの場合、jsonで形式で出力させたうえでjqコマンドで必要な情報のみ抽出することが多いのですが、jqコマンドを初めて使う場合、使い方が分か...
gitを使っていて、git addやgit pushなどのコマンドを実行したとき、以下のような'.git/index.lock': File exists.エラーが出るときがあります。
```language-bash
$ git add *
fatal: Unable to create '/home/xxx/.git/index.lock': File exists.
...
VisualStudio Code(VSCode)では、エディタのスクロールバー領域に開いているファイルを縮小表示したものが表示されます。この機能はミニマップと呼ばれていて、SublimeTextなど他のモダンなエディタも持っている機能です。
ミニマップは便利なのですが...
Slim Framworkを使ったサンプルコードをネットなどで探してきた再、$appオブジェクトを作成する際に、下記のようなコードが例示されている場合があります。
```language-php
Linuxのcron機能で、5分ごとにスクリプトを実行したい場合は、大抵の環境で下記の指定が可能です。
```language-bash
*/5 * * * *
```
ただ、上記の場合だと、開始が0分になります。
開始が0分からではなく、m分のオフセットを掛けたのち、n分おき...
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...
ansibleをインストール後、下記のplaybookを実行すれば、phpとcomposerを纏めてインストールできます。
動作テストは、vagrant上のubuntu-trusty-64にて行っています。
```language-yaml
#!/usr/bin/env ansible-playbook
- name: install php and c...
PHPで、渡されたパラメータの型がintまたはnullであることを、スクリプトで表明するための表記方法です。
## php 7.1の場合
php 7.1では、null許容型が用意されているので、"?int"のような指定方法が可能です。
```language-php
public function s...
Linuxではmanコマンドを利用することでコマンドのヘルプを見ることができますが、用意されているのはコマンドのヘルプだけではありません。
例えば、下記のように`man ascii`コマンドを実行することで、アスキーコード表を素早く確認する事ができます。...
PHPでGuzzleHttpを使用して、jsonのデータを送信したい場合、下記のコードでリクエストを投げることができます。
(さらに…)
PHPの通信ライブラリであるGuzzleHttpで通信の送受信内容をデバッグしたい場合があります。
デバッグ出力するためには、get()やpost()など通信実行のメソッドの第二引数に、'debug'=>trueのパラメータを追加すればよいです。
(さらに…)
PHPのスクリプトでは、先頭にdeclare,namespace,useなど複数の定義を書く必要がある場合があります。
これらの定義を複数書く場合、どの順番で書くのが正しいでしょうか?
(さらに…)
PHPでComposerといえばパッケージの依存性管理を行うためのツールですが、パッケージ管理以外にオートロードの機能も備えています。
今回はcomposerを使って、何も依存パッケージを利用せず、オートロードの機能だけ利用したプログラムを作ってみます。...
PHPでのHTTPリクエストを行うライブラリにGuzzleHTTPが有ります。
GuzzleHTTPでは、通常以下のようなコードで応答テキストを出力することが多いです。
```language-php
pythonでは一定の回数ループさせたり、一定の範囲の数列を扱うために、range()関数があります。
pythonのプログラムでは頻繁に使われる便利な関数なのですが、実はPHPにもpythonと同様、range関数が標準で用意されています。
今回はrange関数を使っ...