記事

PHPで学ぶデザインパターン - オブジェクト指向の基礎

アプリケーション

概要今は絶版になっているPHPによるデザインパターン入門を教科書にして、PHPでデザインパターンを学びます。(※Amazonで中古がありますが、定価の倍以上の値段が付いているようです。) 本連載で扱うコードはgithubにまとめていきます。 本来であれば、OOPの先駆けである言語でデザインパターンを学びたいところでしたが、PHP以外の言語の素養がなかったことと、PHPでデザインパターンを解説してい...

デザインパターン PHP OOP

PHPで学ぶデザインパターン - Template Method ~処理の穴埋め~

アプリケーション

Template Method パターンとは?似たような処理を枠組み(型)としてスーパークラスで定義し、より具体的な処理内容をサブクラスで実装するというパターンです。単なる継承ではなく、具体的な処理内容を抽象メソッドとして定義することで、スーパークラスのメソッドの実装を保証し、クラスの振る舞いをサブクラスによって定義させる継承を利用したパターンです。 構造AbstractClass処理の枠組みを定...

デザインパターン PHP テンプレートメソッドパターン

PHPで学ぶデザインパターン - Singleton ~いくつ作るかを制限~

アプリケーション

Singleton パターンとは?インスタンス生成のコストを制御するために、インスタンスが1つしかないことを保証するパターンです。 構造SingletonClasspriavateのコンストラクタとインスタンスを1つだけ返すstaticメソッドと自分自身のインスタンスを保持するためのstatic変数を用意するだけです。 メリットインスタンスへのアクセスを制御できるSingletonパターンが保持す...

デザインパターン PHP シングルトンパターン

PHPで学ぶデザインパターン - Adapter ~APIを変更する~

アプリケーション

Adapter パターンとは?API(互換性のないインターフェース)同士を適合させるためのパターンです。既存のコードの変更をせずに、再利用することで新しい機能を提供するというものです。再利用するコードには変更を加えないというのが特徴です。主にコードを再利用するためという後天的理由から成り立っているパターンです。(設計段階でラッパーを用意するパターンはBridgeパターンです。) 構造##Targe...

PHP アダプターパターン デザインパターン

php7をインストールした時にmysqlドライバーがなかった

インフラストラクチャ

php7をインストールした時にmysqlドライバーがなかった()php7のインストールについてはこちらを参照にしました。 CentOS6/CentOS7にPHP5.6/PHP7をyumでインストール ちなみに私の環境は・・・ さくらVPS CentOS6.7 ドライバーがないならインストールすればいいじゃないyum install yum install --enablerepo=remi...

CentOS MySQL PHP PHP7 さくらのVPS yum

Nginxをリバースプロキシとして設定する

インフラストラクチャ

Apacheで運用していたさくらVPSにNginxをリバースプロキシとして設定したのでメモします。 随分前に設定したのでうろ覚えのところもあるかもしれませんがご了承ください。 環境 さくらVPS CentOS6系 Apache2.2.15 Nginx1.8.1 あると良い(いやあったほうが良い)前提知識 Apacheのバーチャルホストの仕組み及び設定方法 おおまかに仕組みをいうと、Nginxで...

CentOS Nginx apache さくらのVPS

macにanyenvをインストールする

インフラストラクチャ

Macにanyenvをインストールする手順です。若干ハマったところがあったのでメモ。 インストール私の環境では、/usr/local/bin/に色々置いてあるので、そこにanyenvをインストールすることにします。 cd /usr/local/bingit clone https://github.com/riywo/anyenv Pathを通すexport PATH="/usr/loc...

shellscript anyenv

Letsencryptの証明書自動更新スクリプト

インフラストラクチャ

概要letsencryptの証明書を自動更新するスクリプトの紹介です。以前から作ってはいたのですが、色々と問題があったり、サーバー環境が変わったりで完全版を残せていなかったので改めてまとめました。 環境 nginx v1.12.0 ※letsencryptのインストールやshell scriptの実行方法等には触れません。 スクリプト月に一回証明書の有効期限を問わず更新し(--force-ren...

cron Let's Encrypt shellscript Slack

letsencryptの証明書自動更新(cron)とちょっとだけSlack連携

インフラストラクチャ

letsencryptの証明書自動更新(cron)とちょっとだけSlack連携 やることletsencryptの証明書を自動更新させるのを長らく忘れていたのでshellとcronで設定します。 やらないこと letsencryptのインストール・・・pythonエラーがちょっと面倒だった記憶が。。。 letsencryptのオブションの説明・・・色々あるので。。。 環境 さくらvps CentO...

cron Let's Encrypt shellscript Slack

Let'sEncryptの証明書自動更新に失敗し続けていたけど何とかした話

インフラストラクチャ

letsencryptの証明書自動更新(cron)とちょっとだけSlack連携 でかいたスクリプトは、手動で実行する場合は更新成功するのですが、cronで実行すると何故か毎回失敗するという問題作でした。 そこでスクリプトを見直し、何とか正しく動作するように改良してみました。 筆者はnginx+apacheのサーバー構成です。基本的には--webrootオプションを使って証明書発行や更新を行っていま...

cron Let's Encrypt Slack shellscript