Doctrine2を試してみる(3) リレーション
前回はDoctrine2のアノテーションについて簡単に触れてみました。
今回はそのアノテーションをフルに利用したDoctrine2のリレーション設定とその利用方法について見てみます。
Doctrine2を試してみる(2) アノテーション
前回はDoctrine2のインストールとエンティティマネージャを使ってみました。
今回はエンティティとアノテーションについて見ていきたいと思います。
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
PHP開発パートナー(個人・法人)を募集しています
弊社は創業3年目のまだまだ未熟な企業ですが、大手広告代理店・制作会社様の案件を中心に、多くのWEBサイトのアプリケーションをPHPで構築しています。
WEBインテグレーション事業を中心に、これまで少数精鋭ならではの機動力・きめ細かな対応を
活かした品質の高いサービス提供を行ってまいりました。
ですが、ここ数カ月、案件数の増加に伴いお仕事の依頼をお断りしなければならない状態が続いておりますので、弊社と共に活動して頂けるパートナー様を募集します。
単なるプログラマーではなく、サーバー設定、要件定義、システム提案・・・、などシステム構築全般において高いレベルで積極的に行動できる個人様・法人様、是非ご連絡くださいませ。
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」などで検索するといろいろ参考情報があります。
