するとクラスを見つけられず致命的なエラーになります。クラスを配置していたとします。クラスのインスタンスを生成してみます。読み込まれた状態です。句で指定する必要があります。指定する場合の例です。定数は現在の名前空間名の文字列なので、これを先頭に付与しておきます。クラスフレームワーク開発はジグソーパズルと似ているこんにちは。ウェブ系システム開発者の山本です。ウェブ開発のフレームワークって最近は本当にたくさんありますね。railsなどでしょうか。ここしばらくPHPフレームワークでの開発を継続的にやっています。去年はCakePHP1とCakePHP2を、そして今年はSymfonyを使った実務開発をしています。楽しくコーディングの日々を続ける中で、ジグソーパズルとフレームワークを用いた開発ってとても似ているなってふと思いました。手を動かして答えを探るパソコンでカタカタプログラムを打ち込むフレームワーク開発と、ジグソーパズル。この2つの一体何が似ているのか。直感的に感じた共通点は手を動かすことです。どちらも、とにかく手を動かし探って作り上げていきます。ピースを組み立てていくと徐々に絵が見えてきます。ピースをはめるまでのもやもやした感じ、そしてピースがカチッとハマった時の心が小さく踊る感じ。フレームワークに用意されている機能や仕組みはパズルのピース必要なピースは、基本的にフレームワーク上に全て用意されています。用意された無数の部品が正にピースのようなもので、ピッタリとピースをはめるまでの過程が苦労します。はまる瞬間が気持ちいいし楽しいです。ピースがはまる度に徐々にリズムが生まれてきます。ジグソーパズルも後半になるほど楽ですね。検索フォームを作った時に強く実感パズルな感覚はデータ検索フォームを作った時に強く実感しました。フォームに入力した文字でデータベースを検索して表示するシンプルな画面。なにもフレームワークの仕組みを理解してまで頑張って検索しなくても、自分でゴリゴリ書いて実現してしまえばいいじゃんと思いながらも、フレームワークの仕組みを使って頑張って実装することにしました。ピースが合うまでが、ものすごーく苦労しました!そもそも、どうプログラムを書いていいのかわからないですし、フレームワークで一体なにが行われているのか分からない!思い通りにシステムが動かない時間が続きました。・・・正直もうあまりやりたくない作業です。開発を楽にするためのフレームワークなのに、こんなに苦労して意味があるの?ってちょっと思いました。!それでも、マニュアルや動作サンプルを調べて動かしてみて、やっと動いた時に真価が分かりました。間違いなく苦労した以上の価値がありました。動くまで苦労するけど、動いてしまえば「あれ、もう全部出来てる」って。データを検索できるし、表示もできる、入力チェックもできる、更にページングの実装まで出来上がってる...!自力でこれらをコーディングする大変さも知っている自分にとっては、これがフレームワークの力なのかと唖然としましたね。フレームワークの仕組みを使ってやりたい事を実現することを検討してみてください。それが最良とは限らないですし、時と場合によりますが動いてしまえば苦労した以上の利益が得られることも多くあります。今後の開発が圧倒的に楽になります。フレームワークの理解を深めることは今後への投資とも言えるでしょう。フレームワークPHP5で定数の定義はどうするべきか今まではPHPで定数といえば普通に大文字の変数名で定義しておくか、define関数を使って定義するかだったと思います。変数の定義はのメリットとにかく手軽ということが挙げられます。制約などを考えずにいつもの変数通りに使えます。逆にデメリットは変数であるということ。簡単に上書きできてしまいますし、グローバルな名前空間も汚してしまいます。「定」数ではありません。'グリーン';もう一つのdefine関数の定義はしっかり定数です。define関数で定義する時、通常通り式による定義も出来ます。デメリットとしては名前空間がグローバルなこと。変数とは名前は別扱いですがいろんなファイルやライブラリでどんどん定数を定義していくと重複の可能性も出てきますし、近年の名前空間を取り入れる流れからするとあんまりよくないです。PHPであらかじめ定義されている定数も結構な数あるためちょっと使いにくい。die();}PHP5ではオブジェクト指向の機能が本格的に強化されJavaのような要素もじゃんじゃん取り入れられています。この記事を書いている現在はPHP5.3が主流かと思います。オブジェクト指向化の中でクラス定数というものも出てきました。位置付けとしてはクラスに属する定数です。クラス定数はクラスの中でconstキーワードを用いて定義します。こんな感じで使えます。array(10,20,4);}//参照するときは::(ダブルコロン)演算子を用いる。CONFIG::TOPPAGE_URL);んー、どれもメリットデメリットがあります...PHP6にはクラス定数の強化を望みます。自分はどうしているかというと、クラス定数はやっぱり式による定義が出来ないのがつらいのでdefine関数で定義をしています。あちこちで定義すると分からなくなるのでまとめてコメント付きで定義しています。31Author明日を今日より生きやすく。johnregan3.ホーム。