Doctrine2を試してみる (1) エンティティマネージャー
Doctrine2はPHPのORMでPHP5.3.0以降に対応しているライブラリです。
Doctrine1がすでに存在していますが、様々な便利な機能が追加されさらに強力になっています。
ただし、色々できるということは覚えることも多いということで実際にDoctrine2を触ってみてその世界に触れてみたいと思います。
CakePHP 「GeoSimple Plugin」にGoogle Static Mapsを扱うHelperを追加してみた
前回作成したGeoSimple Pluginを使ってGPS等で取得した緯度経度の近隣データを取得することができました。
こうなるとデータを表示する際には地図で確認できるようにしたい、ということで、
携帯でも表示できる Google Static Maps を使って簡単に地図を表示・操作ができるHelperを作成してみました。
検索結果の画面はこんな感じになります。(クリックで実際の動作が確認できます)
CakePHP 携帯ライブラリと位置情報ライブラリを使った簡易GPS検索プラグイン「GeoSimple Plugin」
CakePHPユーザー最大のイベントPHPMatsuriが近づいてきました。
今年は弊社も協賛として微力ながら応援させて頂きます。
だからという訳では無いのですが、久々のCakePHP関連の投稿です。
最近の携帯端末やiPhone、android携帯では標準でGPS機能が搭載されていますので、
このGPSを使った簡易位置検索(現在地から近隣のデータを検索)を行うプラグインを作成してみました。
※本プラグインでは以下のライブラリを利用しています。
・携帯ライブラリ(Ktai Library)
・位置情報ライブラリ(Geomobilejp)
※検索方式は空間情報を利用したものではありません。三平方の定理で簡易的に距離を求めています。
Read more
symfonyでの開発を楽にする3つの方法
symfonyの開発は慣れていても思い出すのは大変
symfonyで開発して多少慣れてくると色々と面倒だなぁと思う事があります。その1つが実装方法やサンプルコードを思い返すのに時間が掛かるということです。
今日は、この問題をちょこっと解決できる3つの方法
- installerを利用する
- skeletonを利用する
- generatorを利用する
について紹介したいと思います。
symfony1.4(1.3)で簡単に確認画面を作るアドミンジェネレータ
exDoctrineThemePlusPlugin
すでに議論され尽くしている感がある「確認画面を作る方法」ですが、symfony1.3以降で簡単に確認画面を作成できるテーマを作成しましたので紹介します。
1行で書けるPHPファイルを直接実行させない方法
Webサーバーのウェブルート以下に、クラスファイルやincludeされることが前提となっているライブラリファイルのような直接実行されることを意図していないPHPファイルを置いてしまった場合、意図していなくてもブラウザから直接URLを入力された場合はPHPファイルが実行されてしまいます。
PHP5 配列をメソッドチェインで再帰処理するクラス
CakePHPを使っていると、データ構造が多階層の配列で管理されていることが多く、一括で処理をしたい場合などに度々再帰処理を実装することがあります。
通常であれば、array_map系の関数を使って再帰的に処理を記述することになりますが、
- 毎回array_mapを使うのは面倒だし、もっと簡潔に記述したい
- 個別のグローバル関数・各メソッドを連続して簡単に利用したい
という理由で、以下のように記述できるクラスを作成しました。
(クラスのソースコードは最後に記述しています)
-
// $arrの全ての要素にtrimと半角カナ変換を実施
-
ArrayMap::create($arr)->trim()->mb_convert_kana('KV');
-
-
// $arrの全ての要素に「先頭:」という文字を追加
-
ArrayMap::create($arr)->sprintf('先頭:%s');
※PHP5のマジックメソッドを使って実現していますので、PHP4系では使えません
※通常の手続き型で実装する場合は「array_walk_recursive」「array_map recursive」などで検索するといろいろ参考情報があります。
Symfony TemplatingをCakePHPで使ってみる
CakePHPでSymfony Templatingを使ってみる
前回はSymfony Templatingを単独で利用したり、Smartyと連動させてみました。
次に何をしようかと思い、現在のsymfonyで組み込んでみようかと思いましたが、すでにOpenPNEでおなじみの手嶋屋の海老原さんがブログで実践されていました。
というわけで、あのCakePHPのViewとしてSymfony Templatingを使ってみたらどうだろうと思い試してみました。
ただし、CakePHPのViewを完全に置き換えているわけではありません。
とりあえずCakePHPのViewとして動作させることができたという感じです。
Symfony Templatingを使ってみませんか?
Symfony Componentsというのをご存知でしょうか?その名前のとおり、あのPHPのフレームワークで有名なsymfonyに関係するコンポーネントなのですが、symfonyの次期バージョンであるSymfony2で利用されるコアとなる各コンポーネントがライブラリとして公開されています。
近頃、その1つでテンプレート機能部分である Symfony Templatingが公開されましたので、さっそく使ってみました。軽量で柔軟性が高いのでsymfonyを使った事がある人も無い人も簡単に導入する事が可能だと感じました。
そこで、symfonyを使った事がある人も無い人も、「テンプレートエンジンといえばSmartyを使っているけど、PHPってテンプレートエンジンみたいなものだしPHPでテンプレートを書きたい。。」という方まで、ドキュメントとソースを読んで実際に使ってみた例を紹介したいと思います。
DoctrineのfindBy,findOneByにorder byを追加する方法
symfonyではDoctrineが実質的な標準ORMになりました。
まだまだ使いきれていないのですが、機能が豊富にあるため知っているのと知らないのではかなりの差がでてきます。
今回は知っていると得するDoctrineの小ネタです。
Doctrineの特徴としてfindByとfindOneByメソッドがあります。
これらはマジックメソッドで実装されており、カラム名をつけて呼び出すことでより通常のDQLの記述よりも短くすっきりと書くことができます。
