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


Linuxではlogrotateコマンドでログの切り替えを行うことができますが、ログ切り替えの最小単位は1時間周期(hourly)です。 今回は、logrotateコマンドで、15分おきや1分おきなど、1時間より短い時間でのログ切り替えを行う方法を説明します。 ## 作...


Visual Studio 2017のインストーラをダウンロードすると、通常は1MB程度の小さなインストーラーで大半のデータをインストール中にオンラインでDLする形式になります。 複数台にインストールするなど、予めISOイメージを取得して起きオフラインでVisual ...


bash for windowsでfindを使う

2017年9月12日 | カテゴリ: Linux, Windows | タグ:
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をインストールする

2017年9月10日 | カテゴリ: C#
Windows向けの.Net Core SDKは、https://www.microsoft.com/net/download/core#/sdkよりダウンロードできます。 .Net CoreのSDKのインストールは、1分程度で完了する小さなもので、特に再起動も要求されません。 インストーラーも下記のような感じ...


クラウドサーバなどリモート環境で実行されているLinuxサーバの再起動などを行った場合、いつ再起動が終わったかを知らせてほしい場合があります。 このような場合、リモートサーバがpingを許可していれば下記のコマンドで確認することができます。 ``...


VagrantでVMの管理にVirtualBoxを使用している場合、Vagrantfileの設定を変更することで、ネットワークを速くすることができます。 方法は、Vagrantfileファイルを編集し、ネットワークのドライバをvirtioというものに変更したうえで、vagrant upする...


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


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


AWSのクラウド環境をコマンドラインから操作するために、awsコマンドというものがあります。 検索系のコマンドの場合、jsonで形式で出力させたうえでjqコマンドで必要な情報のみ抽出することが多いのですが、jqコマンドを初めて使う場合、使い方が分か...


VisualStudio Code(VSCode)では、エディタのスクロールバー領域に開いているファイルを縮小表示したものが表示されます。この機能はミニマップと呼ばれていて、SublimeTextなど他のモダンなエディタも持っている機能です。 ミニマップは便利なのですが...


Linuxのcron機能で、5分ごとにスクリプトを実行したい場合は、大抵の環境で下記の指定が可能です。 ```language-bash */5 * * * * ``` ただ、上記の場合だと、開始が0分になります。 開始が0分からではなく、m分のオフセットを掛けたのち、n分おき...


[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を使って、何も依存パッケージを利用せず、オートロードの機能だけ利用したプログラムを作ってみます。...


PHPでもrange()関数を使ってみよう

2017年8月1日 | カテゴリ: PHP
pythonでは一定の回数ループさせたり、一定の範囲の数列を扱うために、range()関数があります。 pythonのプログラムでは頻繁に使われる便利な関数なのですが、実はPHPにもpythonと同様、range関数が標準で用意されています。 今回はrange関数を使っ...


PHPでは、define()関数を使用して、定数を作ることが可能です。 定数を切っておくと便利なのですが、定義の内容はシステム全体に及ぶため影響範囲を調べ辛いというデメリットもあります。 古くからあるアプリを保守する場合は、そもそも、何のdefine定...


PHPで利用できるマイクロフレームワークの一つに、Slim Frameworkというものがあります。今回は、Slim Frameworkで、302リダイレクトを行う方法を説明します。 Slim Frameworkでは、HTTPのリクエスト、レスポンスの情報をPSR-7の規格に準じた形で実装し...


最近のモダンなPHPプログラムでは、エラー処理を行う際に、try-catchを利用した例外処理で対応する場合が多いです。 全てのプログラムを自作する場合は、全てのエラーを例外として統一的に扱うことができます。ですが、古いライブラリなどを利用する場...


PHPでは、XDebugを利用することで、ステップ実行などが行えますが、一方で処理が遅くなるデメリットがあります。 プログラムの特定の処理で、デバッグを行う意図はないけれども、XDebugのせいで非常に遅くなる場合、プログラムからXDebugを無効化できます...


既にComposerが導入済みのプロジェクトに、後から自分がアサインされる場合、Composerにかかわる環境を調査したい場合があります。 最初に調査を始めるときは、インストールされた環境に変更を加えずに設定の内容だけを確認したいものです。 今回は、...


PHPのパッケージ管理ツールであるComposerですが、問題の切り分けなどで、いったんComposerにまつわる全てのファイルを削除する方法を説明します。 ## Composerを構成するファイル Composerのプログラム自体は、composer.pharファイルの1ファイルの...


PHPでファイルを削除したい場合、unlink()関数を使用することファイルの削除が出来ます。 ですが、ファイルを削除するのではなく0byteに切り詰めたい場合があります。 ファイルを削除せずに切り詰めたい状況ですが、例えば何らかの事情があって、ファ...