phpの最近の情報



このたび、MovableTypeをバージョン4からバージョン5にアップデートした。

 

少しバージョンが古かったのもあったけど、ブログの更新をTwitterに投稿する、

OAuth対応のプラグイン「PostTwiOAuth」を入れたかったから。

 

MovableTypeのアップデート自体はそれほど問題なくできたのだけど、

手間取ったのは、データベース(MySQL)のデータのインポートとエクスポート。

 

レンタルサーバ上で、MySQLのデータベースを複数作成できたので、

既存のデータベースを残す方式のアップグレード 」を選択した。

MySQLのデータベースも以前作成したものとバージョンが異なるサーバのようで、

PhpMyAdminのインターフェイス、データベースの文字コードも違っていた。

 

最初、データベースを丸ごとエクスポートしてインポートしようとしたけど、エクスポート

データの中にCreate Database文も含まれており、別のデータベースにインポートできへん・・

そんな状態で、よくよくインポートのオプションを見ると、最初のn個のクエリを

無視するなんてのがあったので、「こういう時に使うのかと納得した」

で、Create Database文、Set Database文が含まれる、最初の6ステートメントを

飛ばすことで、インポートはできるようになった・・

が、インポート後のデータが文字化け・・そういえば、エクスポートデータの最初に、

文字コードに関するステートメントも含まれてたので、それが原因か・・

タイトルと関係ない部分で長くなってしまっているが、結局のところ、

データベース丸ごとエクスポートではなく、テーブルを個別に選択してエクスポート

できる機能がPhpMyAdminにあったので、こちらで、全テーブルを選択してエクスポート、

それをインポートすることでうまくいった。

Create Database文がそもそも含まれないので、最初のn個のクエリを無視するという

オプションも使わずに済んだのがよかったんだろう。

 

そんなこんなで、Movable Typeのバージョンアップ。少し手こずったけど、無事完了。

 

本題の、PostTwiOAuthプラグイン。

現時点(2010/7/25)での最新版、0.40をインストール。

インストールは簡単。インストールするとMovable Typeのアップデートが行われたので

ちょっとびっくり。

 

PostTwiOAuthプラグインの設定。

TwitterAPIは既存のものを利用するのかと思っていたけれど、自分自身でAPIを作成

する必要がある。API作成して、そのAPIにログインして各種設定。

テスト用のツィートまではサクサクっと完了。

 

次に、既存の記事に対して、Twitterへの投稿のRepost機能があるので、早速、既存の

記事で試してみるが、投稿されない・・

エラーは発生しないので何が何だか不明。

プラグイン入れる前に投稿した記事だから?古いバージョンのMovableTypeの記事だから?

よくわからないので、とりあえず新しい記事を投稿して動作確認。

 

そう・・、この記事が動作確認用の記事。

うまくいったかどうかは、投稿してみないとわかりませんので・・。

 

タイムラインで早速確認してみよう。

 

私はPHPをメインでは利用していないのですが、CakePHPフレームワークが

そこそこ評判が良いようなので、いろいろと使っていこうと思ってます。

*CakePHPについては...こちらを参照

 

CakePHPを選択した理由としては、

  • PHPを利用できる環境がレンタルサーバなどで豊富
  • とりあえずのセットアップが超簡単
  • RubyOnRailsフレームワークの影響を受け機能的にも十分

 

など他にもたくさん挙げられます。

 

個人的には、Web開発ではJavaでTomcatを利用していたので、

PHPであれば、symfonyがその流れを汲むのだが、symfonyは、

まだ、CakePHPほどの勢いはないかなぁという感じです。

 

(特にビジネスとしての)開発をおこなう場合には、開発環境の整備が重要

になると思います。スキルにばらつきのあるプロジェクトチームでは、開発環境

を整備することで、生産性の飛躍的な向上はもちろん、開発工程の標準化、

チーム開発での作業の統一化も図れます。

 

そこで、ビジネスでの利用も想定にしたうえで、以下のように

PHPの開発環境を整備していきたいと思います。

  • 統合開発環境(IDE)を利用する
  • 日本語の環境で利用できる
  • IDEでテスト(デバッグ)ができる
  • フレームワーク(CakePHP)と連携ができる
  • ソース管理(チームでの共有)ができる
  • データソースの管理ができる

 

今回はまず、

統合開発環境(IDE)の準備と、日本語化までを説明します。

 

1.統合開発環境(IDE)

  もちろんPHPの統合開発環境も様々なものが存在します。

  有料の、ZendStudio、VS.PHP、Delphi for PHPなどをはじめ、

  Eclipse環境で利用できる、PDT、PHPEclipse、TruStudio、etc

  ⇒無料で利用でき、スタンダードになりつつあるPDTを選択します。

 

  PDTは、"PHP Dvelopment Toolkit " の略です。

  その名の通り、PHPの開発に特化した環境になっています。

  上記、サイトより"Download"を選択し、"PDT 2.0.1 All In Ones"から

  Windows、Linux、MacOSを選択します(2009年6月19日現在の最新版)

  ⇒PDTをまだインストールしていない場合は、既に日本語化済のPDTが、

   ダウンロードできます(2.を参照)

 

  Eclipseと同様、インストールといった特別な作業は必要なく、解凍して任意

  の場所にコピーするだけでセッティングは完了です。

  eclipseフォルダの、eclipse.exeを起動するだけです(Windows環境の場合)

  PDTのバージョンは、2.0.1

  Eclipsのバージョンは、3.4.1 となっています。

 

  起動すると、PHPのプロジェクト作成機能や、PHPファイルのコード補完機能、

  Web開発(HTML,CSS、XML)等の開発がすぐにできるような設定になって

  います。

 

2.PDT開発環境の日本語化

  Pleiades(プレアデス)という日本語化プラグインを適用します。

  手順は至ってシンプルで簡単です。

  MergeDoc Project よりプラグインをダウンロードします。

  ※このサイトでは、PDT+Pleiadesが一体化になった、All in Oneモジュールも

  ダウンロードできるようにもなっています(Windowsのみ対応) 

  

  個別にPleiadesだけをダウンロードする場合は、"Pleiades 本体ダウンロード"

  より安定版をダウンロードします(2009年6月19日現在の安定板 1.3.0)

 

  インストール手順は、まずダウンロードしたファイルを解凍し、featuresフォルダと、

  pluginsフォルダを、eclipse(PDT)フォルダに上書き。

 

  その後は、readmeフォルダを参照すれば、手順が詳しく書かれています。

  まず、eclipse.iniの最後に、次の行を追加。

  -javaagent:plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar

 

  次に、"eclipse.exe -clean.cmd"ファイルをeclipseフォルダにコピーし、

  ダブルクリックして実行します(Windows環境)

  ⇒これだけでメニュー等、日本語化されています。

  

  また、Pleiadesのスプラッシュを使用する場合は、eclipse.ini内の、

  -showsplash ?

  の部分を削除します。

 

  以上で、まずは統合開発環境(IDE)のセットアップと、日本語化部分が

  完了しました。

 

20090620.jpg

 

  次回は、統合開発環境上での、PHPファイルのデバッグと、CakePHP

  フレームワークの設定・動作確認・デバッグ部分を設定します。

 

 CakePHPによる実践Webアプリケーション開発

 

著者:岸田健一郎、安藤祐介、新原雅司

発行日:2009年3月31日

発行者:中川信行

発行所:株式会社毎日コミュニケーションズ

263ページ

3,000円+税

 

内容

現場のプロが解説するCakePHP1.2を用いた開発技法のすべて

単なるフレームワークの機能解説だけではなく、CakePHPを使ってどのようにWebアプリケーションを組み立てていくかを、開発現場で培われてきた経験に基づき解説します。CakePHPの基礎知識に始まり、アプリケーション開発、テスティングフレームワーク、機能拡張まで、現場で役立つプラクティスが散りばめられています。

  • Chapter1 Webアプリケーションフレームワーク CakePHP
    1-1 CakePHPについて
    1-2 CakePHPのダウンロード
    1-3 CakePHP1.1と1.2の違い
    1-4 基礎的な仕組み
  • Chapter2 アプリケーションを作り込んでいく
    2-1 グループウェアをつくる
    2-2 予定表
    2-3 ユーザ管理
    2-4 関連を作る
    2-5 ACLを使ったアクセス制御
    2-6 見た目を調整する
  • Chapter3 テストコードを記述する
    3-1 テスティングフレームワークを利用する
    3-2 モデルのテスト
    3-3 コントローラのテスト
    3-4 コンポーネントのテスト
    3-5 ヘルパーのテスト
  • Chapter4 機能を拡張する
    4-1 アラートメール
    4-2 携帯電話の対応
    4-3 CSVでの出力
  • Appendix サンプルアプリケーションについて

 

 ポイント

PHPの主力のフレームワークとなりつつあるCakePHPでのWebアプリケーション開発の実践的な解説書です。2009年5月10日現在で最新のバージョン、CkaePHP1.2を用いた解説書になっています。

インストール方法など、ごく基本的な内容については解説されていますが、本書の流れは、あくまで、グループウェアというWebアプリケーションをいかにして開発していくかが中心となって構成されています。もちろん具体的なコードも豊富に記述されています。

また、ただ単にアプリケーションを開発するだけでなく、ビジネスの現場でも役に立つようなポイント(アクセス制御・テスティング、メール連携、CSV出力、携帯電話対応)も解説をとおして学べるようになっており、これから開発の基礎を学ぶ人も、いままでCakePHPでの開発に携わってきた人にも読み応えのある内容になっていると思います。

 

本書については上記のような内容になっているため、CakePHPのリファレンス的な内容、機能を網羅的に記述されていることはありませんが、リファレンスについては、CakePHP1.2について書かれた「CakePHPポケットリファレンス」がよいと思います。この2冊を組み合わせれば、CakePHP1.2での開発の多いな助けとなると思います。

 

このブログでもCakePHP1.2を利用した開発についての解説の記事も書いていくつもりですので是非参照してください。

タグ「CakePHP」が付けられているもの

 

 

 

 

CakePHPポケットリファレンス

著者:株式会社ブルーオーシャン 岡田佳典

発行日2008年7月25日

発行者:片岡巌

発行所:株式会社技術評論社

447ページ

2,480円+税

 

内容

話題のフレームワーク、CakePHPでWebアプリケーションを高速開発!

 

  • 困った時にすぐに調べられる
  • メソッドや関数の使い方をサクッと逆引き
  • CakePHP1.1/1.2に対応
  • わかりやすいサンプルコード付き

 

第1章 インストール編

第2章 設定編

第3章 モデル編

第4章 コントローラ編

第5章 ビュー編

第6章 コンポーネント編

第7章 ヘルパー編

第8章 キャッシュ編

第9章 Sanitizeライブラリ編

第10章 アクセスコントロールリスト編

第11章 プラグイン編

Appendix 資料

 

ポイント

CakePHP1.1/1.2の両方に対応したリファレンスマニュアルです。内容については簡潔にまとめられ、カテゴリ毎にわかれて記述されているため開発の際に調べるのに役立ちそうです。サイズとページ数についても手頃な印象です。

機能的にも多くの内容が書かれており通常の開発の際に必要となる項目は網羅されているのではないでしょうか?ただしCakePHP1.2については、発行の時期的な兼ね合いもあり、一部がリファレンスとして書かれていない状態です。その内容については、巻末の資料欄に詳しく書かれています。

リファレンスや、CakePHPの命名規約、QAなど実際にCakePHPで開発をする際に参照するのに便利な内容となっていますが、CakePHPのフレームワークを利用したアプリケーション開発の手順については触れられていないため、書籍を読むだけで、CakePHPでの開発手法を学ぶというのは難しいでしょう。

CakePHPが影響を受けているフレームワーク「Ruby on Rails」の開発の経験者や、Struts,Struts2などのWebアプリケーションフレームワークの動作について理解している場合はイメージがつきやすいとは思いますが、CakePHPの開発手法に関しては別途書籍で学ぶほうがよいでしょう。

 

下記のように新しい書籍もどんどん発売され、PHPのスタンダードなフレームワークとしての地位を築いていきそうです。( ※2009年3月15日現在の新刊では以下が発売されています。)

CakePHPによるWebアプリケーション開発

 

また、2009年3月15日予約受付中ですが上記と類似の書籍が発売されます。

CakePHPによる実践Webアプリケーション開発

 

最初に

CakePHPは、Webアプリケーションフレームワークです。

名前のとおり、PHPの環境の上で動作します。

PHPとは?

 

CakePHPの特徴

CakePHPは、"Ruby On Rails"の設計思想に大きな影響を受けて開発されています。Ruby On Railsをご存じの方はCakePHPの仕組みについてスムーズに理解することができるでしょう。また、CakePHPもMVCモデルに基づき設計されているため、これまで同様のフレームワークを利用したことがある方も大まかな動作については想像しやすいでしょう。

  • PHP4とPHP5の両方のバージョンで動作する
  • 生産性と保守性を大きく向上することができ、堅牢なシステムとなる
  • 外部のライブラリに依存しないため環境の構築が容易でホスティングサービスにも対応


前提条件

  • Webサーバ(Apache、IISに対応)のインストール・設定
  • PHP(PHP4.3.2、またはPHP5以降)のインストール
  • DBMS(MySQL等、開発するシステムの必要に応じて)

※ApacheからCakePHPを動作させるために、URL書き換えエンジン(mod_rewrite)を有効にし、また、.htaccessファイルを有効にします。

 

mod_rewriteの設定

httpd.confの設定を変更

#LoadModule rewrite_module modules/mod_rewrite.so

LoadModule rewrite_module modules/mod_rewrite.so

(コメントされている場合はコメントをはずしモジュールを有効にする)

※設定を変更した場合はApacheを再起動する

 

.htaccessファイルを有効にする

httpd.confの設定を変更

<Directory /var/www/>

    AllowOverride All

</Directory>

(CakePHPを配置したディレクトリの設定で、"AllowOverride"の設定を"All"とする)

※設定を変更した場合はApacheを再起動する

 

インストール 

以下のURLを開き、"ダウンロード"をクリックします。

http://www.cakephp.jp/

画面の右上に、大きく"Download"と最新のバージョンが書かれたリンクがありますので、クリックします。2009年2月28日時点での最新バージョンは、1.2.1.8004.Stable となっています。

 

切り替わった画面にて、必要な形式(tar.gz、zip等)のファイルを選択します。寄付をしてダウンロードするか、寄付はせずダウンロードするかの選択をする画面が開くのでいずれかをクリックしてダウンロード画面を開き、ダウンロードを開始します。

 

ダウンロードしたファイルをインストールすには、ダウンロードしたファイルを解凍し、Webサーバのドキュメントルート以下に配置します。このとき、解凍したフォルダの名前を簡単なものに変更しておきます(例:/var/www/cake/)ドキュメントルートが、/var/www/とすると、CakePHPは"http://server_name/cake/"でアクセスすることができるようになります。

 

CakePHPをより安全に運用するための配置

CakePHPのファイルの中には様々な種類のファイルがあるため、すべてをドキュメントルート以下に配置してしまうとセキュリティ上の問題が発生してしまう場合があります。

そこでドキュメントルート自体を、CakePHPのファイルの中の公開が必要なフォルダに設定してしまう方法があります。

httpd.confの設定を変更

DocumentRoot /var/www

DocumentRoot /var/www/cake/app/webroot

 

※ドキュメントルートを変更できない場合は、必要な、cake/app/webrootフォルダのみドキュメントルート以下にコピーし、動作に必要なアプリケーションファイルのフォルダ、ライブラリファイルのフォルダを個別に配置し、index.phpで、配置したフォルダの場所を個別に設定することが可能です。

  • ROOT定数の設定
  • APP_DIR定数の設定
  • CAKE_CORE_INCLUDE定数の設定

 

以上で、CakePHPを配置したアドレスを入力して、CakePHPの画面が表示されればインストール完了です。このフレームワークを利用し、作成したプログラムを配置することで、Webアプリケーションの開発を高速に進めることができるようになります。

 

  • PHP5.3

PHPの次期バージョンの機能について。

2009年1月25日現在の安定板リリースは、php-5.2.8であるが、

次期バージョンとして、php-5.3.0alpha3が公開されている。

 

PHP6のリリースが遅れているということもあって、

PHP5.3では様々な機能追加がされているようなので

その内容について調べてみた。

 

機能

  • Pharアーカイブ
    標準機能として対応(Javaでいう.jarアーカイブのようなもの)
  • 高速化
    GCにてのメモリ効率の大幅な改善、循環参照の検出機構
  • 字句解析(スキャナ)の高速化
    flexからre2cへ
  • Namespace
    namespaceおよびclassを定義し、同名クラスの使い分けが可能
  • ?演算子
    A?:B 3項演算子の拡張形
  • Late Static Binding
    コンパイル時でなく実行時にスタティックイベントを処理する
  • MSQL ND
    DBにIFをネイティブ実装、メモリ・キャッシュ管理wpPHP側で可能
    使用メモリ40%低減、高速化
  • NOWDOC
    変数の展開をしないHEREDOC
    <<<'EOD' ...シングルクォートで囲む
  • goto文の採用

最後のgoto文は興味深い

いまさら感のあるgoto文。

いろいろな記事で、このgoto文について触れられているが

おおむね好意的にとらえられていそう。

(別にあったからどうってこともなく使わなければいいだけなので当然かもしれないが)

 

ただ、その昔からgoto文は絶対使ってはいけないなどの禁止令があったりと

いう事も聞くので、おのずと議論になるのでしょう。

goto文に限らずどのような命令・関数でもタブーな使い方はあるが、確かに

goto文はタブーをおかしてしまう可能性が高いと思う。

したがって、できる限り使用せずスマートなフローになるように考えるのが

プロフェッショナルかなと。その上でgoto文を採用するなら良し。

※教育にもよるが新人や経験の少ないひとは、まずはgoto文でフローを制御

せず自然な流れで処理を書けるように考えるのが実力アップにも繋がると思う。

 

php5.3 goto文について

 

参照

PHPに押し寄せるリスクと国際化

 

 

PDT2.0とは?

「PDT2.0」とは、Eclipse Foundation(ソフトウエア開発ツール関連の業界団体)が

開発している、Eclipse上で動作しPHPアプリケーションの開発に着手するために

必要とされる基本的なコード編集機能などを備えるオープンソースの開発ツール。

 

Eclipseについては特に説明する必要はないと思いますが、Javaの開発環境を

はじめ様々なシステム開発環境に対応できる統合開発環境(IDE)です。

Eclipse(エクリプス)を利用するためのわかりやすい情報はこちらを参照

 

Eclipse上で動作するPHPプラグインについては、他にも、「PHPeclipse」や

「TruStudio」なども存在します。

 

ダウンロード・インストール

私はEclipseは利用はしていますが、PHPをメインで利用していないので、

詳細は以下を参照してください。

私も機会があればPHP開発環境を構築してみようと思います。

※個人的には、Delphi for PHP2.0 が、3万円程度で購入できるので、そっち

がいいかなぁーと思ってますが...(試用版」もダウンロードできます)

 

PDT2.0の導入は、PDTプロジェクトのサイトよりダウンロードすることができます。

PDTの導入は、All-in-Oneパッケージにて解凍するだけでeclipseを含め、全て

利用できるパッケージがありますが、既存のeclipseへプラグインを追加して、

環境を構築することもできるようです(追加するプラグインが多いようなので少し

手間がかかるようです)

ここ、インストールについて詳しく書かれてます。

http://www.kabosu100.net/archives/2008/06/pdtxamppzenddebugger.html

 

機能・特徴(2.0での追加機能も含む)

  • 基本的なコード編集機能・コード補完機能
  • 関数定義位置へのジャンプ
  • PHP 組込み関数支援
  • ローカルヒストリー

  • リアルタイムエラー申告
  • オブジェクト指向機能をサポート
  • タイプの階層ビュー
  • タイプの情報を基にPHPコードを検索する機能
  • 上書きされたPHPメソッドにタグを付ける機能
  • 新しいインデックスおよびキャッシュ・エンジンを追加
  • PHPの変数の型に基づいたコード補完オプション

 

参照

 

PHP(ぴーえいちぴー)

PHPは、ハイパーテキストプロセッサー(Hypertext Processor)といいます。

ご存じのとおり、主な利用目的としてはWEB上で動的な画面生成することです。

ソースコードをコンパイルすることなく実行できるスクリプト型のプログラミング言語です。

 

人気の理由

PHPは、オープンソースということはもちろん大きな理由の一つではありますが、

言語構造が理解しやすく、だれでも習得がしやすいという特徴を持っています。

文法や関数についても、C言語、Java、Perlとも近いものがあります。

そして手軽にインストールすることができる、マルチプラットフォームに対応していることから、

インターネット上の情報やドキュメントも豊富に存在します。当然のことながら、書籍も入門書から

上級者向けの専門書まで簡単に探すことができます。

 

プラットフォーム

PHPが対応するプラットフォームとしては、Windows、Linux、MaxOS、OS/2、

NetWare、AS/400などさまざまなOS上で動作させることができます。

 

特徴

PHPは、上記以外にもたくさんの特徴を持っており、そのいずれもがPHPの人気を

支えてきています。簡単にその特徴のうち、いくつかを紹介します。

  • WEBサーバとの連携
    Apache、IISとの連携が容易。モジュールとして軽快に動作させることが可能。
  • データベースとの連携
    MySQLをはじめ、PostgreSQL、Oracle、SQLServer、Sybase、DB2、またODBCとも
    連携が容易で素早くWEB+DBアプリケーションの開発が可能。
  • オブジェクト指向
    PHP5になり、よりオブジェクト指向の機能強化が図られています。
  • WEBアプリケーション開発のサポート
    文字コード変換を設定により自動化したり、WEB上でのセッション管理機能の充実、
    Smartyをはじめとしたフレームワークによるアプリケーション開発が容易に可能。
  • ライブラリの充実
    PEARを中心とした、手軽に利用できるライブラリが豊富にそろっている。
  • 連携機能
    PHPから、XMLやJavaを操作・連携するための機能や、PDFlibによる、PHPからPDFを
    作成・操作する機能、Flashムービーを作成するためのMingというライブラリも存在します。

PHPサンプル

雰囲気だけになりますが、実際のPHPのコードをサンプルとして記述します。

<?

    //PHPの環境設定情報を出力します

    phpinfo();

?>

 

<?

    //文字の出力

    print "こんにちは";

 

    //変数定義、演算

    $val = 20;

    $val += 5;

    print $val;

?>

 

※また、<?   ?> 開始タグと終了タグで囲まれたスクリプト記述部の外側に書かれた

HTML等の記述については、そのまま出力されます。