-オープンソースのSNSエンジン OpenPNEプロジェクト-

OpenPNE 3.1.0 リリースのお知らせ

05 / 19 火曜日 2009

OpenPNE 開発チームの海老原です。

本日 2009/05/19 (火)、 開発版 OpenPNE 3.1.0 をリリースしました。

今回は「開発性の向上」をモットーに、 2つ の大きな機能改善がおこなわれています。

Doctrine 対応

OpenPNE 3.1.0 からは ORM として Doctrine を使用します。

Propel と違い、 Doctrine は ORM であると同時に DBA としての機構も備えており、 OpenPNE 3.0.x ではバージョンアップにおけるデータベースの構造変更時に Doctrine を用いていました。

今回 Propel の代わりに Doctrine を ORM として利用していくようになったことで、開発者は以下のようなメリットを享受することができます。

豊富なドキュメント

Doctrine は ORM とは思えないほど圧倒的な量のドキュメントを用意しており、開発の際に疑問に思ったことはすぐに調べることができます。

開発に便利な数多くの機能

スキーマ定義に記述を追加するだけで、論理削除の実現や投稿日時の透過的な記録などの機能をモデルに付加していくビヘイビアや、継承やイベント機構、全文検索など実に多くの機能をサポートしています。

直感的なデータベース操作

Doctrine は SQL と似た構文でコードを記述できる Doctrine_Query や DQL によってデータベースの操作をおこなうというアプローチを取っています。これにより、 ORM 独特の記述をさほど学習することなくコードを書きはじめられます。

データベース構造変更用スクリプトの自動生成

また、 3.0.x にて用いていた migrate 機能(バージョンアップのためにデータベース構造を変更する機能)についても、 Doctrine を全面的に利用するようになったことで改善がおこなわれました。 3.0.x まではデータベース構造変更用のスクリプトを開発者自身の手で記述する必要がありましたが、 3.1.0 からは OpenPNE と Doctrine がデータベースの構造とモデルの構造の差分を取り、データベースをモデルの構造にあわせていくためのスクリプトを自動的に生成し、実行します。ですので、開発者は、データベースの構造を変更するためにスクリプトをわざわざ用意する必要がほとんどなくなります。

権限管理の仕組みを導入

OpenPNE 3.0.x では DB の情報によって変化する動的な権限管理をおこなうための機構を用意しておらず、複雑な権限に対応することは容易ではありませんでした。

OpenPNE 3.1.0 からは権限管理に Zend_Acl を用いることでこの問題に対処していきます。

機能追加・機能改善・バグ修正

  • #3880 携帯版コミュニティ検索機能の追加(nagasawa)
  • #3879 携帯版メンバー検索機能の追加(nagasawa)
  • #3925 sfOpenPNESecurityUser::setCurrentAuthMode() をコールしても authAdapter が置き換わらない(ebihara)
  • #3916 test 環境であっても sfMobileIOFilter が有効になってしまう(ebihara)
  • #3822 アクセスブロックが解除できない(nagasawa)

その他の機能追加・機能改善・バグ修正については、 ChangeLog をご覧ください。

注意事項

3.0.x に同梱されていたプラグインの一部は Doctrine に未対応のため、現時点の OpenPNE 3.1.0 ではご利用いただけません。

同梱されているプラグインは以下となります。

  • opAuthMailAddressPlugin
  • opAuthMobileUIDPlugin
  • opAuthOpenIDPlugin
  • opCommunityTopicPlugin
  • opWebAPIPlugin

なお、今後プラグイン側のバージョンアップによって同梱されるプラグインが増える場合があります。
詳しくは各プラグインのリリース情報をご覧ください。

バージョンアップ・インストール

バージョンアップ

バージョンアップ方法は、同梱の doc/ja/OpenPNE3_Version_Up_Guide.txt や OpenPNE3.1 バージョンアップ手順 をご覧ください。

インストール

インストール方法は、同梱の doc/ja/OpenPNE3_Setup_Guide.txt や OpenPNE3.1 セットアップ手順 をご覧ください。

ダウンロード・チェンジログ

ダウンロード

http://www.openpne.jp/pne-downloads

チェンジログ

http://trac.openpne.jp/wiki/pne-openpne3/ChangeLog/ja

今後の OpenPNE3.1

以降の OpenPNE3.1 は、今回のリリースで整えた基盤を生かして更なる発展を続けていきます。
次の OpenPNE3.1.1 では「連携性の強化」を目指して機能開発を進めていきます。

コメント:6

sacki 09-05-20 (水) 11:17

なんで今更Zend_Acl?Symfonyの「すべて揃っている感」は?っていうか仕様変更ありすぎてついていけなさそう・・・ :<

Kousuke Ebihara 09-05-20 (水) 12:51

コメントありがとうございます。

symfony 自身も symfony ですべてを解決できるとは思っていなくて、場合によっては他ライブラリを利用することを The Definitive Guide to symfony の 17 章で奨励していますし、 Practical symfony の 16 日目と 17 日目のチュートリアルではごくごく普通に Zend_Framework のライブラリを用いています。こちら、お読みになった上でのご意見でしょうか?

symfony 単体では、 OpenPNE が求めている、 DB に依存した動的なアクセス権限管理をおこなうことができないので、 Zend_Acl の利用という決断に至りました。ご理解いただけたでしょうか?

> Symfonyの「すべて揃っている感」は?
こちら、よく言われるみたいですけど、フレームワークの基本機能のことだけを指しているのでなければ、気のせいなんじゃないかと思いますけどね。

> っていうか仕様変更ありすぎてついていけなさそう
はい、 3.1.x 系は 3.2.x 系に向かうための開発版で、大規模な仕様変更や機能実装も厭わない方針を採っています。今回は最初のリリースということもあってバージョンアップに追従するためのドキュメント等も用意されていない状態ですが、こちら、順次揃えて参りますのでお待ちいただければと思います。
それでも追従が難しいということでしたら、 3.0.x 系を使い続けていただくのがいいと思います。

attete 09-05-21 (木) 11:50

コアサーバですが、インストールコマンドを打つとエラーになるようです。
3.0.4の場合、うまくインストールできました。

Warning: sfSimpleAutoload::require(/tmp/OpenPNE-3.1.0/lib/vendor/doctrine/Doctrine/Manager.php): failed to open stream: No such file or directory in /virtual/redcomets/OpenPNE-3.1.0/lib/symfony/autoload/sfSimpleAutoload.class.php on line 118

エラーメッセージ:
Fatal error: sfSimpleAutoload::require(): Failed opening required ‘/tmp/OpenPNE-3.1.0/lib/vendor/doctrine/Doctrine/Manager.php’ (include_path=’/virtual/redcomets/OpenPNE-3.1.0/config/../lib/vendor/PEAR/:.:/usr/local/lib/php’) in /virtual/redcomets/OpenPNE-3.1.0/lib/symfony/autoload/sfSimpleAutoload.class.php on line 118

ブランドン 09-05-21 (木) 13:50

> attete さん

私も同様の現象が発生して、

$ /path/to/openpne/symfony cc

でキャッシュクリアしてから、symfonyまでを絶対パス指定でインストール実行したらうまくいきました。
# 問題のファイルは …/openpne/cache/project_autoload.cache だと思います。

$ /path/to/openpne/symfony openpne:install

ご参考までに。

# 余談ですが、こういったサポート情報が載っているであろう公式コミュニティが招待制なのは効率よくないのでは、と思います。

Kousuke Ebihara 09-05-21 (木) 20:25

ご指摘ありがとうございます!
キャッシュを削除したものを再度アップロードしたのでご確認よろしくお願いします!

大石 11-05-16 (月) 14:22

サーバーにhetemlをつかっています
インストールは無事に完了したようなんですが
サイトにアクセスすると
Warning: array_merge() [function.array-merge]: Argument #1 is not an array in /home/sites/heteml/users158/p/a/l/palf/web/blog-beginners.com/lib/config/opProjectConfiguration.class.php on line 119

Warning: Invalid argument supplied for foreach() in /home/sites/heteml/users158/p/a/l/palf/web/blog-beginners.com/lib/config/opProjectConfiguration.class.php on line 125
というエラーが画面上に出てきてしまします
初期メールアドレスと初期パスワードを入れてもログインできません 管理画面も同様です

ページの先頭に戻る