Y's note

Web技術・プロダクトマネジメント・そして経営について

本ブログの更新を停止しており、今後は下記Noteに記載していきます。
https://note.com/yutakikuchi/

PHP

defineを辞めてhidefを使う

PHP

追記 PHPでdefineのかわりにhidefをつかう必要はない - id:k-z-h トラックバックに対して反応を書いた事が無いんですが、ちゃんとした内容が掲載されていたのでこちらでも追記しておきます。エントリーアップ時にdefineを辞めてhidefに切り替えることを強く…

10分でFuelPHPの基礎を理解する

PHP

FuelPHP入門作者: 早川聖司出版社/メーカー: ソーテック社発売日: 2012/06/02メディア: 単行本購入: 10人 クリック: 192回この商品を含むブログ (9件) を見る 様々な技術を求められる開発現場 じゃあ、いつRails始めるの?... 今でしょ! - Yuta.Kikuchiの日…

PHPのマルチスレッドプログラミングを使ってシステム処理を爆速化するお話し

PHP

パーフェクトPHP (PERFECT SERIES 3)作者: 小川雄大,柄沢聡太郎,橋口誠出版社/メーカー: 技術評論社発売日: 2010/11/12メディア: 大型本購入: 32人 クリック: 1,065回この商品を含むブログ (60件) を見る Intro 会社に入社して5年が経ち、4月から新しい部署…

PHPのHash/暗号化関数の使用方法まとめ

PHP

概要 「そもそもHashと暗号化って何が違うの?」この記事はそういった疑問を持っている私自身がまとめた記事でとても初歩的な内容になります。記事の紹介の中ではPHPをメインに話を進めます。PHPのHash関数、暗号化関数の種類が豊富で中々覚えづらい内容が多…

PHPにおける時間表記のISO-8061、DATE_ATOM、DATE_RFC3309、DATE_W3Cの違いは何か

PHP

ISO-8601時刻表記について ISO-8601はあまり使わない時刻を表記する形式ではあるがAtomフィードの時刻表記でその互換規格として利用されます。Atomについては最近記事を書いたのでそちらを参照してください。RSSより便利なAtomデータの詳細と利用方法につい…

AES暗号のまとめ

AESとは 共通鍵暗号方式の一つ。http://ja.wikipedia.org/wiki/AES暗号 共通鍵暗号方式にはブロック暗号とストリーム暗号が存在し、AESはブロック暗号方式。 ブロック暗号方式は固定長のブロックデータを単位として処理をする。 一般的にブロック暗号方式は…

Date/Timestamp変換のまとめ

2013/07/17追記 @yutakikuchi_です。 ※本記事の内容より詳しいものを書きました。 誰もが一度は陥る日付処理。各種プログラミング言語におけるDateTime型/TimeStamp型の変換方法のまとめ - Yuta.Kikuchiの日記 概要 Mysqlからアプリケーションで日付情報を引…

5分で分かるCakePHPの基礎

PHP

PHPのFWを比較することを試みようと思っている。PHPの4大FWと言われる、CakePHP,Symphoney,Zend,Codeigniterは少しずつ勉強を進めよう。まずは軽量かつ覚えやすいというCakePHPについて記述する。※コードの追跡を行ったのはCakePHP version1.3.9。現時点での…

SimpleXMLElement Objectの参照

PHP

内容 久しぶりにxmlをパースする処理を書いていたんだけど、SimpleXMLElement Objectの参照方法を忘れていたのでメモをしておく。(20120416追記) 今まではサンプルプログラム中のforeachで$resultに添字$iでインクリメントして値を代入していましたが、$iを…

超簡単なインスタンスコンテナ 動的編

PHP

概要 以前のエントリで超簡単なインスタンスコンテナというタイトルで記事を書きましたが、 コンテナに格納できるインスタンスが静的に呼び出されるものだったので、 動的に呼び出されるように修正してみました。以前のエントリは以下のものです。 http://d.…

SQLのQUERY生成でsprintfを使いたくない

PHP

内容 sprintfは見た長い文字列を書き足しやすくするための関数で、SQLの生成ではできるだけ使いたくない。 sprintfは型の指定が入るので、特にnullなどの扱いに気をつけないといけない。 sprintf + LIKE文を作ろうとすると %を多用するので、LIKE "%%%s%%"と…

serializeとjson関数の比較

PHP

概要 serializeとjson_encodeのどちらの利用が望ましいかを調べます。理由はWebAPIを作成するときにどのレスポンス形式が最適なのかを検証する必要がでてきたためです。事前に上がった意見としては”json_encodeの方がデータ容量少なくなるから速いっしょ”、”…

TemplateMethod パターン

概要 親クラスに共通処理の流れを記述し、子クラスで各処理の具体的な実装を行うパターンです。 メリットとしては共通処理を一箇所にまとめることができるのと、子クラスで具体的な実装が組めるのでやりたい処理をクラスごとに変更することができます。 処理…

Strategyパターン

概要 このパターンはアルゴリズムをクラス化してクライアントからクラスの切り替えで処理を行うパターンになります。 クライアントからのアクセス用の共通メソッド(API)を用意してあげて、別々のクラスのメソッドにアクセスをして 完全に処理クラスに委譲す…

Observerパターン

概要 このパターンは監視するクラス/監視されるクラスから成り立ち、監視されるクラスで特定の処理が入ったときに 監視クラスにメッセージを送信することができるというもの。例えば監視されるクラスで処理が終わったときに 監視クラスに通知を行ない、監視…

PHPでFilterChainを実装してみた

PHP

説明 前処理と後処理を各FilterClassに実装してFilterをChainさせます。 処理の順番としては ■前処理(prefilter) filterA → filterB → filterC ■後処理(postfilter) filterC → filterB → filterA というように後処理は前処理と逆に行われます。 FilterChain…

magic method

PHP

phpのマジックメソッドについて挙動を確認してみました。 とりあえずは代表的なもののみをピックアップ。 data_[ $ke…

abstract static宣言

PHP

abstract staticの宣言がphpで出来ます。継承した子クラスでもstaticで呼び出すことが出来ます。

API Frameworkの設計

クラス設計図 やりたいこと APIのように同一の処理の流れを組み込む場合、TemplateMethodパターンを利用してFrameWork化することができると思います。 PHPのFrameWorkはたくさん世の中に出回っていると思いますが、必要用途のモノだけを揃えた軽量FrameWork…

Singleton

Singletonパターン 1 外部からインスタンスを生成させない 2 インスタンスをひとつだけ生成を許す ということを実現するデザインパターン。 Singletonクラス

PHPのvalidate処理実装

validate処理 frameworkには必ずといっていいほど含まれているvalidate処理。独自に簡単な処理を書いてみた。 validateは処理の型が決まっているので、interfaceを用意し、個別のvalidateクラスを実装する。 interface validateのinterfaceを定義