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の構文チェックを行う方法
2017年9月29日
| カテゴリ: PHP
phpでは、`php -l`コマンドでスクリプトにエラーがないか、構文チェックを行うことができます。
たくさんのファイルがある場合、findコマンドと組み合わせることで、指定したディレクトリ以下の全ファイルに対して、構文チェックを行えます。
下記の...
[Google App Engine]dev_appserver.pyで、No module named 'setup'エラー
2017年9月21日
| カテゴリ: python
|
Google App Engineを使った開発を行う際、dev_appserver.pyを実行すると`No module named 'setup'`エラーが出ることがあります。
```language-bash
> dev_appserver.py app.yaml
Traceback (most recent call last):
File "C:\Users\xxx\AppData...
[PHP]Unexpected T_STRINGエラーが出たときにチェックすること
2017年9月17日
| カテゴリ: PHP
PHPのプログラムを実行するとUnexpected T_STRINGエラーが出る場合があります。
このエラーが出た場合にチェックするポイントを説明します。
## エラーが出た場所を確認する
以下のようにエラーが出るので、まずはこのエラーメッセージよりエラー...
[PHP]Slim3 でcookieを管理するクラスを作る
2017年9月16日
| カテゴリ: SlimFramework
PHPのSlim3 Frameworkでcookieを管理するためのクラスです。
stackoverflowにあったコードを元に一部改修してます。
https://stackoverflow.com/questions/35257522/slim-3-framework-cookies
```language-php
[PHP]Slim3では、なぜget()メソッドの中で$thisでDIコンテナが取得できるか?
2017年9月15日
| カテゴリ: SlimFramework
PHPのSlim3 Frameworkでは、以下のようなコードでgetリクエストが走った時のコールバック処理内で、DIコンテナへアクセスすることができます。
```language-php
$app = new \Slim\App();
// myServiceをDIコンテナを取得
$container = $app->getCont...
[Slim3]DIコンテナからインスタンス取得時にコンストラクタ引数を渡す
2017年9月13日
| カテゴリ: SlimFramework
PHPのマイクロフレームワークであるSlim3 Frameworkでは、PimpleパッケージベースにしたDIコンテナが用意されています。
今回はSlim3で、DIコンテナからインスタンス取得時に、呼び元からコンストラクタ引数を渡す方法を説明します。
## 通常のDI...
Visual Studioでプロジェクトを作成したとき、No executable found matching command "dotnet-projectmodel-server"エラーが出ることがあります。
``` language-bash
---------------------------
Microsoft Visual Studio
----------------------...
Visual Studio 2017 Community EditionのISOイメージを入手する
2017年9月12日
| カテゴリ: C#
Visual Studio 2017のインストーラをダウンロードすると、通常は1MB程度の小さなインストーラーで大半のデータをインストール中にオンラインでDLする形式になります。
複数台にインストールするなど、予めISOイメージを取得して起きオフラインでVisual ...
[Windows].Net CoreのSDKをインストールする
2017年9月10日
| カテゴリ: C#
Windows向けの.Net Core SDKは、https://www.microsoft.com/net/download/core#/sdkよりダウンロードできます。
.Net CoreのSDKのインストールは、1分程度で完了する小さなもので、特に再起動も要求されません。
インストーラーも下記のような感じ...
[PHP]Slim3でPDOを使用する最小限のプログラム
2017年8月31日
| カテゴリ: SlimFramework
Slim3 FrameworkでPDOを使用したDBアクセスを行いたい場合があります。
Slim3では、システム全体で使用するオブジェクトの管理をDIコンテナに任せることができる為、DIコンテナ経由でPDOオブジェクトの取得を行う方がスマートです。
下記は、PDOオブ...
Visual StudioでAWS Lambdaのプロジェクト作成時、"Microsoft.DotNet.Props"が見つからないエラーが出るとき
2017年8月30日
| カテゴリ: C#
|
Visual Studioで、AWS Toolkit for Visual Studioを使用してAWS Lambdaのプロジェクトを作成しようとしたとき、下記のエラーが出るときがあります。
```language-bash
---------------------------
Microsoft Visual Studio
---------------------...
[PHP]Slim3 FrameworkでGET/POSTパラメータを取得する方法
2017年8月26日
| カテゴリ: SlimFramework
PHPのマイクロフレームワークである、Slim3 Frameworkでクライアントから渡された、GET/POSTパラメータを受け取る方法はいくつかの方法があります。
まずは以下の方法で、すべてのパラメータを配列として取得できます。
```language-php
$paramValue ...
[PHP]Slim 3 Framworkで\Slim\Slimクラスがnew出来ない場合
2017年8月17日
| カテゴリ: SlimFramework
Slim Framworkを使ったサンプルコードをネットなどで探してきた再、$appオブジェクトを作成する際に、下記のようなコードが例示されている場合があります。
```language-php
[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の回答に提示されていたコー...
[PHP]Slim Frameworkで応答をjsonp形式で返す
2017年8月14日
| カテゴリ: SlimFramework
Slim Frameworkで応答データをjsonp形式で返したい場合は、下記のようにすればよいです。jsonpのcallback関数名は、通常クライアントから指定してもらうことが多いです。
```language-php
$app->get('/', function (Request $request, Response $respons...
[PHP]SlimFrameworkでエラーのデバッグ出力を行う方法
2017年8月13日
| カテゴリ: SlimFramework
SlimFrameworkでは、スクリプトの途中でエラーが出たとき以下のメッセージを画面に表示するだけで、エラーのスタックトレースなど詳細を画面に表示しません。
```language-bash
Slim Application Error
A website error has occurred. Sorry for the te...
[PHP]Slim FrameworkでPhpRenderを利用したViewコンポーネントの分離を行う
2017年8月12日
| カテゴリ: SlimFramework
PHPのマイクロフレームワークでであるSlim Frameworkでは、標準ではViewに相当するコンポーネントが用意されていません。マイクロなだけに、ルーティング処理中でViewの出力まで行っても良いのですが、最低限のMVCによるViewの分離ぐらいは行いたい場合が...
[PHP]strpos()関数で、Empty needle in... のPHP Warningが出力される条件
2017年8月11日
| カテゴリ: PHP
PHPでstrpos()関数を実行したとき、下記の警告が表示される場合があります。
```language-bash
PHP Warning: strpos(): Empty needle in...
```
これは、strpos()の第二引数が、空文字列のときに発生します。
(さらに…)
[PHP]Slim FrameworkでAPIキーによるアクセス認証を実装する
2017年8月10日
| カテゴリ: SlimFramework
PHPを使ったプログラムで、簡単なWebAPIを実装したい場合があります。
小さなWebAPIサーバなど、シンプルなサービスを実装する時にSlim Frameworkのようなマイクロフレームワークは助けになりますが、クライアントの認証がネックになることがあります。...
[PHP]phpでのyaml読み込みはsymfony/yamlパッケージが便利
2017年8月9日
| カテゴリ: yaml
phpからyamlファイルを読む機会があったのですが、symfony/yamlパッケージを使ってみたら便利でした。
パッケージ名に"symfony"とついていますが、symfonyフレームワークを使わなくても、このパッケージだけ単独で利用できます。
(さらに…)
[PHP]ヒアドキュメントを使った時、syntax errorが出たらチェックすること
2017年8月8日
| カテゴリ: PHP
PHPでヒアドキュメントを使ったスクリプトを書いたとき、、ヒアドキュメントの次のステートメントで、下記のようなエラーが出る場合があります。
```language-bash
PHP Parse error: syntax error, unexpected end of file xxx.php line x
Parse err...
[PHP]引数にint又はnullを許容する関数を作る(タイプヒンティング、PHPDocコメント)
2017年8月7日
| カテゴリ: PHP
PHPで、渡されたパラメータの型がintまたはnullであることを、スクリプトで表明するための表記方法です。
## php 7.1の場合
php 7.1では、null許容型が用意されているので、"?int"のような指定方法が可能です。
```language-php
public function s...
[PHP]GuzzleHttpでjsonデータを送信する
2017年8月6日
| カテゴリ: GuzzleHttp
PHPでGuzzleHttpを使用して、jsonのデータを送信したい場合、下記のコードでリクエストを投げることができます。
(さらに…)
[PHP]GuzzleHttpで通信の内容をデバッグ出力する
2017年8月5日
| カテゴリ: GuzzleHttp
PHPの通信ライブラリであるGuzzleHttpで通信の送受信内容をデバッグしたい場合があります。
デバッグ出力するためには、get()やpost()など通信実行のメソッドの第二引数に、'debug'=>trueのパラメータを追加すればよいです。
(さらに…)
[PHP]declare,namespace,use定義は、どの順で書くのが正しいか知ってますか?
2017年8月4日
| カテゴリ: PSR
PHPのスクリプトでは、先頭にdeclare,namespace,useなど複数の定義を書く必要がある場合があります。
これらの定義を複数書く場合、どの順番で書くのが正しいでしょうか?
(さらに…)
[PHP]Composerをautoloadだけの目的で使う
2017年8月3日
| カテゴリ: composer
PHPでComposerといえばパッケージの依存性管理を行うためのツールですが、パッケージ管理以外にオートロードの機能も備えています。
今回はcomposerを使って、何も依存パッケージを利用せず、オートロードの機能だけ利用したプログラムを作ってみます。...
[PHP]Guzzleで応答データのレスポンスボディをstring型として取得する
2017年8月2日
| カテゴリ: GuzzleHttp
PHPでのHTTPリクエストを行うライブラリにGuzzleHTTPが有ります。
GuzzleHTTPでは、通常以下のようなコードで応答テキストを出力することが多いです。
```language-php
PHPでもrange()関数を使ってみよう
2017年8月1日
| カテゴリ: PHP
pythonでは一定の回数ループさせたり、一定の範囲の数列を扱うために、range()関数があります。
pythonのプログラムでは頻繁に使われる便利な関数なのですが、実はPHPにもpythonと同様、range関数が標準で用意されています。
今回はrange関数を使っ...
[PHP]プログラム内でdefine定義された定数を調べる方法
2017年7月28日
| カテゴリ: PHP
PHPでは、define()関数を使用して、定数を作ることが可能です。
定数を切っておくと便利なのですが、定義の内容はシステム全体に及ぶため影響範囲を調べ辛いというデメリットもあります。
古くからあるアプリを保守する場合は、そもそも、何のdefine定...
[PHP]Slim FrameworkでGETとPOSTの両方処理できるルーティングを書く方法
2017年7月24日
| カテゴリ: SlimFramework
PHPのSlim Frameworkでは、$app->get($pattern, $callable)や、$app->post($pattern, $callable)でそれぞれGET/POSTリクエストが来た時の処理を定義することができます。
今回は、複数の種類のリクエストを一度に定義する方法をいくつか紹介します。
(...
[PHP]Slim Frameworkで302リダイレクトを行う方法
2017年7月21日
| カテゴリ: SlimFramework
PHPで利用できるマイクロフレームワークの一つに、Slim Frameworkというものがあります。今回は、Slim Frameworkで、302リダイレクトを行う方法を説明します。
Slim Frameworkでは、HTTPのリクエスト、レスポンスの情報をPSR-7の規格に準じた形で実装し...
[PHP]composer updateでDiscard changes [y,n,v,s,?]が表示されたときの対処法
2017年7月17日
| カテゴリ: composer
Composerで`composer update`コマンドを実行したとき、下記のプロンプトを表示されて、更新作業が止まる場合があります。
```language-php
> composer update
...
Discard changes [y,n,v,s,?]
```
これは、vendorフォルダの中身をローカルで変...
[PHP]Composerでパッケージの特定revisionのコミット内容を取得する
2017年7月14日
| カテゴリ: composer
PHPでComposer管理されているパッケージを取得する際に、gitの特定リビジョンの内容を取得してくる方法を説明します。
(さらに…)
最近のモダンなPHPプログラムでは、エラー処理を行う際に、try-catchを利用した例外処理で対応する場合が多いです。
全てのプログラムを自作する場合は、全てのエラーを例外として統一的に扱うことができます。ですが、古いライブラリなどを利用する場...
PHPStormでXDebugを使用しているとき、BraakPointを指定していないにもかかわらず、
常に最初のファイルの、最初の行(ステートメント)で、止まってしまう場合があります。
これは、PHPStormの設定にて、最初のステートメントが走る時に、自動的にbreak...
[PHP]プログラムからXDebugを一時的にOffにする方法
2017年7月7日
| カテゴリ: XDebug
PHPでは、XDebugを利用することで、ステップ実行などが行えますが、一方で処理が遅くなるデメリットがあります。
プログラムの特定の処理で、デバッグを行う意図はないけれども、XDebugのせいで非常に遅くなる場合、プログラムからXDebugを無効化できます...
[PHP]Composerで非公開パッケージを作成時license指定はproprietaryにする
2017年7月5日
| カテゴリ: composer
composerでパッケージを作成したときに用意するcomposer.jsonには、ライセンスを指定するためのフィールドがあります。
この項目は必須ではありませんが、記入することが強く推奨されています。
## オープンソースのパッケージでよく使用されるlicen...
[PHP]Composerでのプラグイン作成時に、XDebugを有効化する方法
2017年7月3日
| カテゴリ: composer
Composerでは、パフォーマンスを優先するために、XDebugが有効化されていた場合は自動で無効化しています。
ComposerはXDebugが有効化されていた時、このことに対する警告を表示します。
```language-bash
> composer update
You are running composer...
[PHP]ComposerでHost key verification faildエラーが出るとき
2017年6月30日
| カテゴリ: composer
本記事では、、PHPでComposerをしているとき、Host key verification faildエラーが出たときの対処方法を説明します。
(さらに…)
[PHP]Composerで「The zip extension and unzip command are both missing」エラー
2017年6月28日
| カテゴリ: composer
Composerでパッケージを入手しようとした場合、`zip extension`が見つからないとのエラーが出た時の対処法を説明します。
(さらに…)
[PHP]Composerが導入済みの環境で、最初に実行すべき10のコマンド
2017年6月26日
| カテゴリ: composer
既にComposerが導入済みのプロジェクトに、後から自分がアサインされる場合、Composerにかかわる環境を調査したい場合があります。
最初に調査を始めるときは、インストールされた環境に変更を加えずに設定の内容だけを確認したいものです。
今回は、...
[PHP]Composerで、Retrying with degraded modeエラーが出た時にチェックすること
2017年6月23日
| カテゴリ: composer
Composerでパッケージのダウンロード時などに"Retrying with degraded mode"エラーが出る場合があります。
```
> composer update
...
Failed to decode response: zlib_decode(): data error
Retrying with degraded mode, check https://getcompo...
本記事では、Microsoftが作ったエディタであるVisual Studio Codeを使って、phpcsを使って*.phpファイルのコーディング規約をチェックを行う方法を説明します。
(さらに…)
[PHP]Composer自体を完全にアンインストールする方法
2017年6月20日
| カテゴリ: composer
PHPのパッケージ管理ツールであるComposerですが、問題の切り分けなどで、いったんComposerにまつわる全てのファイルを削除する方法を説明します。
## Composerを構成するファイル
Composerのプログラム自体は、composer.pharファイルの1ファイルの...
[PHP]Composerでローカルのリポジトリにアクセス時にBasic認証を使う
2017年6月19日
| カテゴリ: composer
PHPでプロジェクトローカルのパッケージをComposer管理しているとき、Basic認証が掛かったリポジトリからパッケージを取得する方法を説明します。
## プライベートなpackageをgitで管理する
Composerでは、packagist.orgで提供されるパッケージ以...
[PHP]Composerで「SSL/TLS protection disabled」が出るときの対処法
2017年6月16日
| カテゴリ: composer
PHPのパッケージマネージャであるComposerを使用していて、「You are running Composer with SSL/TLS protection disabled.」の警告メッセージが出たときの対処法について説明します。
(さらに…)
[PHP]ファイルを削除ではなくtruncateする方法(0byteに切り詰める)
2017年6月15日
| カテゴリ: PHP
PHPでファイルを削除したい場合、unlink()関数を使用することファイルの削除が出来ます。
ですが、ファイルを削除するのではなく0byteに切り詰めたい場合があります。
ファイルを削除せずに切り詰めたい状況ですが、例えば何らかの事情があって、ファ...
[PHP]Composerでエラー「Do not run Composer as root/super user」が出る時
2017年6月14日
| カテゴリ: composer
PHPのパッケージマネージャであるComposerを使用していて、以下のエラーが出た時の対処法を説明します。
```language-bash
> composer update
Do not run Composer as root/super user!
```
(さらに…)
[PHP]Composer使用時にGitHubのAPI rate limitを回避する
2017年6月13日
| カテゴリ: composer
Composerを利用して短時間で大量のパッケージを取得すると、GithubのAPI実行回数制限に引っかかってまうばあいがあります。上限に掛かるとComposerは、認証のためにgithubのユーザIDとpassowordを要求します。要求通りIDとパスワードを入力すればユーザ認...
[PHP]Composerを実行すると'Could not open input file: composer.phar'エラーが出る時の対処法
2017年6月12日
| カテゴリ: composer
Composerを初めて使った方から、composerコマンドを実行すると下記のエラーが出るとの質問をもらいました。今回は、このエラーが出た時の確認ポイントを説明します。
(LinuxやPHPに対して不慣れな人向けの記事です)
(さらに…)
[PHP]Composer使用時に「proc_open(): fork failed errors」エラーが出た時の対処法
2017年6月9日
| カテゴリ: composer
Linux環境でComposerを使用していて「proc_open(): fork failed errors」エラーが出た場合の対処法を説明します。
(さらに…)
[PHP]phpcsでPSR-2構文チェックを1秒で行う方法(右クリックメニュー使用)
2017年6月8日
| カテゴリ: phpcs
PHPでは、phpcsを使用するとコーディング規約のチェックを行えます。
今回は、単一のphpファイルを、右クリックから簡単にチェックする方法を紹介します。
(さらに…)
[PHP]composer使用時、GitHubのAPI rate limitを回避するためにOAuthトークンを使う
2017年6月7日
| カテゴリ: composer
Composerを利用してGithubへ短時間で大量のリクエストを送ると、Github APIに対するアクセス回数制限に引っかかる場合があります。このような場合、Composerがgithub認証のために、ユーザIDとパスワードを要求します。要求通りID/パスワード入力すればユー...
[PHP]Composerをプロキシサーバ経由で利用する
2017年6月6日
| カテゴリ: composer
社内LANなど、外部へアクセスするときにProxyサーバが必要な環境で、composerを使用すると下記のエラーが出てパッケージのダウンロードに失敗する場合があります。
```language-bash
> composer require monolog/monolog
file could not be downloade...
[PHP]「php composer.phar install」コマンドでopensslが見つからないエラーが出るとき
2017年6月5日
| カテゴリ: composer
PHPのパッケージ管理ツールであるComposerを利用する場合、最初のインスールで`php composer.phar install`コマンドを実行します。
このコマンドを実行したとき、下記のエラーが出る場合があります。
```language-bash
> php composer.phar install
...
[PHP]Composerで依存パッケージの要求バージョンに矛盾が発生するとき
2017年6月2日
| カテゴリ: composer
Composerで複数のパッケージを利用している場合、依存しているパッケージの要求バージョンが、パッケージ間で矛盾が発生する場合があります。
このような場合は、Composerでパッケージのバージョンを上書きする(エイリアスをつける)ことで解決できる場合...
[PHP]ComposerでThe system cannot find the path specifiedエラーが出るときの対処法
2017年5月31日
| カテゴリ: composer
WindowsでComposerを実行したとき、指定されたパスが見つかりません(The system cannot find the path specified)エラーが出る場合の対処法を説明します。
(さらに…)
[PHP]デバッグ時にjson_encode()の出力を見やすくする(JSON_PRETTY_PRINTオプション)
2017年5月29日
| カテゴリ: デバッグ
|
XDebugなどのデバッガがない環境でプログラムの開発・デバッグを行っているとき、変数の中身をjson_encode()で確認したいときが良くあります。ですがjson_encode()はデータが複雑だったり、サイズが大きいと可読性が悪いという問題があります。
今回は...