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...
ThinkPadでPCの電源がシャットダウンされているときでも、USBポートからの充電を有効にするための設定方法です(Windows10が入った、ThinkPad x260で確認しています)。
スタートメニューから、Lenovo Settingsを開きます。
左のメニューより、電池...
Linuxではlogrotateコマンドでログの切り替えを行うことができますが、ログ切り替えの最小単位は1時間周期(hourly)です。
今回は、logrotateコマンドで、15分おきや1分おきなど、1時間より短い時間でのログ切り替えを行う方法を説明します。
## 作...
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のインストーラをダウンロードすると、通常は1MB程度の小さなインストーラーで大半のデータをインストール中にオンラインでDLする形式になります。
複数台にインストールするなど、予めISOイメージを取得して起きオフラインでVisual ...
Windows環境で、bash for windowsやGit bashなどのbash環境を使っているとき、findコマンドでファイル検索しようとすると、以下のエラーが表示される場合があります。
``` language-bash
$ find ./ -print
FIND: 無効なスイッチです
```
これは、...
Ansibleで小さなファイルを大量にcopyタスクを使ってコピーする場合、処理に非常に時間がかかる場合があります。この場合、copyの代わりにsynchronizeのタスクに変更すると劇的に処理が早くなる場合があります。
変更前:
```language-yaml
- name: co...
Windows向けの.Net Core SDKは、https://www.microsoft.com/net/download/core#/sdkよりダウンロードできます。
.Net CoreのSDKのインストールは、1分程度で完了する小さなもので、特に再起動も要求されません。
インストーラーも下記のような感じ...
sshでパスフレーズを未設定なキーファイルを.ssh/id_rsaにおいたにもかかわらず、以下のようにパスフレーズを聞かれる場合があります。
```language-bash
> ssh 192.160.1.2
Enter passphrase for key '/home/username/.ssh/id_rsa':
```
この症...
LinuxでメモリやCPUを多く消費していて、パフォーマンスに影響を及ぼしているプロセスを調べたいときに便利なコマンドを2つ紹介します。
```language-bash
# メモリの使用量が多い順にプロセスを表示
ps aux | sort -nrk +4 | head
# CPUの使用量が...
クラウドサーバなどリモート環境で実行されているLinuxサーバの再起動などを行った場合、いつ再起動が終わったかを知らせてほしい場合があります。
このような場合、リモートサーバがpingを許可していれば下記のコマンドで確認することができます。
``...
VagrantでVMの管理にVirtualBoxを使用している場合、Vagrantfileの設定を変更することで、ネットワークを速くすることができます。
方法は、Vagrantfileファイルを編集し、ネットワークのドライバをvirtioというものに変更したうえで、vagrant upする...
Slim3 FrameworkでPDOを使用したDBアクセスを行いたい場合があります。
Slim3では、システム全体で使用するオブジェクトの管理をDIコンテナに任せることができる為、DIコンテナ経由でPDOオブジェクトの取得を行う方がスマートです。
下記は、PDOオブ...
Visual Studioで、AWS Toolkit for Visual Studioを使用してAWS Lambdaのプロジェクトを作成しようとしたとき、下記のエラーが出るときがあります。
```language-bash
---------------------------
Microsoft Visual Studio
---------------------...
PHPのマイクロフレームワークである、Slim3 Frameworkでクライアントから渡された、GET/POSTパラメータを受け取る方法はいくつかの方法があります。
まずは以下の方法で、すべてのパラメータを配列として取得できます。
```language-php
$paramValue ...
AWSのクラウド環境をコマンドラインから操作するために、awsコマンドというものがあります。
検索系のコマンドの場合、jsonで形式で出力させたうえでjqコマンドで必要な情報のみ抽出することが多いのですが、jqコマンドを初めて使う場合、使い方が分か...
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...
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関数を使っ...
Windows版のSourceTreeで、git管理されているフォルダをExplorerで開いているとき、右クリックメニューから簡単に開く方法を説明します。
## 右クリックメニューからSourceTreeで開けるようにする
SourceTreeはver2.0で大きくインターフェースが変わ...
PHPでは、define()関数を使用して、定数を作ることが可能です。
定数を切っておくと便利なのですが、定義の内容はシステム全体に及ぶため影響範囲を調べ辛いというデメリットもあります。
古くからあるアプリを保守する場合は、そもそも、何のdefine定...
Linuxでは、findコマンドで特定フォルダ以下のファイル一覧を取得することができます。
今回は、Windowでの同様の処理を行う方法を説明します。
## Windowsでコマンドラインからファイル一覧を取得する
Windowsのcmd.exeでは、dirコマンドのオ...
PHPのSlim Frameworkでは、$app->get($pattern, $callable)や、$app->post($pattern, $callable)でそれぞれGET/POSTリクエストが来た時の処理を定義することができます。
今回は、複数の種類のリクエストを一度に定義する方法をいくつか紹介します。
(...
PHPで利用できるマイクロフレームワークの一つに、Slim Frameworkというものがあります。今回は、Slim Frameworkで、302リダイレクトを行う方法を説明します。
Slim Frameworkでは、HTTPのリクエスト、レスポンスの情報をPSR-7の規格に準じた形で実装し...
SourceTreeで、gitサーバに接続しようとすると「SSHエージェント(Pageant)は起動していますが、接続に失敗しました」エラーが出た場合の対処方法を説明します。
(確認環境:Windows 7、SourceTree 2.0.20)
(さらに…)
Composerで`composer update`コマンドを実行したとき、下記のプロンプトを表示されて、更新作業が止まる場合があります。
```language-php
> composer update
...
Discard changes [y,n,v,s,?]
```
これは、vendorフォルダの中身をローカルで変...
PHPでComposer管理されているパッケージを取得する際に、gitの特定リビジョンの内容を取得してくる方法を説明します。
(さらに…)
最近のモダンなPHPプログラムでは、エラー処理を行う際に、try-catchを利用した例外処理で対応する場合が多いです。
全てのプログラムを自作する場合は、全てのエラーを例外として統一的に扱うことができます。ですが、古いライブラリなどを利用する場...
PHPStormでXDebugを使用しているとき、BraakPointを指定していないにもかかわらず、
常に最初のファイルの、最初の行(ステートメント)で、止まってしまう場合があります。
これは、PHPStormの設定にて、最初のステートメントが走る時に、自動的にbreak...
PHPでは、XDebugを利用することで、ステップ実行などが行えますが、一方で処理が遅くなるデメリットがあります。
プログラムの特定の処理で、デバッグを行う意図はないけれども、XDebugのせいで非常に遅くなる場合、プログラムからXDebugを無効化できます...
composerでパッケージを作成したときに用意するcomposer.jsonには、ライセンスを指定するためのフィールドがあります。
この項目は必須ではありませんが、記入することが強く推奨されています。
## オープンソースのパッケージでよく使用されるlicen...
Composerでは、パフォーマンスを優先するために、XDebugが有効化されていた場合は自動で無効化しています。
ComposerはXDebugが有効化されていた時、このことに対する警告を表示します。
```language-bash
> composer update
You are running composer...
本記事では、、PHPでComposerをしているとき、Host key verification faildエラーが出たときの対処方法を説明します。
(さらに…)
Composerでパッケージを入手しようとした場合、`zip extension`が見つからないとのエラーが出た時の対処法を説明します。
(さらに…)
既にComposerが導入済みのプロジェクトに、後から自分がアサインされる場合、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ですが、問題の切り分けなどで、いったんComposerにまつわる全てのファイルを削除する方法を説明します。
## Composerを構成するファイル
Composerのプログラム自体は、composer.pharファイルの1ファイルの...
PHPでプロジェクトローカルのパッケージをComposer管理しているとき、Basic認証が掛かったリポジトリからパッケージを取得する方法を説明します。
## プライベートなpackageをgitで管理する
Composerでは、packagist.orgで提供されるパッケージ以...
PHPのパッケージマネージャであるComposerを使用していて、「You are running Composer with SSL/TLS protection disabled.」の警告メッセージが出たときの対処法について説明します。
(さらに…)
PHPでファイルを削除したい場合、unlink()関数を使用することファイルの削除が出来ます。
ですが、ファイルを削除するのではなく0byteに切り詰めたい場合があります。
ファイルを削除せずに切り詰めたい状況ですが、例えば何らかの事情があって、ファ...
投稿ナビゲーション