search
LoginSignup
2

More than 5 years have passed since last update.

BEAR.Sunday 1.0 alpha

BEAR.Sunday 1.0の概要を変更点を中心に紹介します。主にこれまでの0.xがある程度理解されている方を対象にかいています。

はじめに

以下の2つのコンセプトに注力するために、量的なものを大胆に削っています。

  • HTTPアプリケーションのためのアーキテクチャ
  • アプリケーション制約を提供する

(まずは1.0リリースのために一旦捨てて、必要があれば別パッケージとして復活させていく方針にします。例えばデバック関連はBEAR.DevPackageの一部としてリリースします。)

概要

Package versions

セマンティックバージョニングです。
メジャーバージョンはそれぞれ上がり、BCブレイクが存在します。

Ray.Di 2.0
Ray.Aop 2.0
BEAR.Resource 1.0
BEAR.Sunday 1.0
BEAR.Package 1.0
BEAR.Skeleton 1.0

1.0がリリースされたらBCブレイクなしで継続するつもりでいます。(2.0は無い予定です)

Framework Extension

フレームワークの機能拡張を4つにしぼりました。アプリケーション、ルーター、リプレゼンテーション、トランスファーの4つです。それぞれ、構成入力表現出力に対応します。

つまりDIとAOPでアプリケーションを構成して(App)、リソースのリクエストを受け取り(Router)、アプリケーション状態を変更してその表現を求め(Representation)、レスポンスとして出力(Transfer)します。

REST (Representational State Transfer)をそのままフレームワークとして拡張ポイント

Context Module

コンテキストに応じてアプリケーションの振舞いは変わります。

  • Hal
  • Api
  • Cli
  • Prod

Plugin Module

コンテキストによらないアプリケーションの拡張機能です。現在はAuraルーターと HAL 関連のみがあります。

  • Web Router
  • Aura Router
  • Router Collection
  • Hal Render / Transger

Application

アプリケーションのメタ情報はそれぞれの定数(tmp_dir)などではなく、1つのオブジェクトにまとめられました。同様に各種の設定値は文字列として扱われるのではなくて、オブジェクトのプロパティとして扱われることが望まれます。

アプリケーションブートストラップは基本的にはコンテキストによらず同一です。

スケルトンはよりシンプルになりました。同時に複数のアプリケーションが機能します。

主な変更点

Ray.Aop

  • [MOD] カスタムMatcher
  • [ADD] namespaceの継承
  • [MOD] 速度、安定性

Ray.Di

  • [MOD] インターセプターのバインドがオブジェクトではなくクラス名に。束縛順を気にする必要がなくなりました。
  • [DEL] AbstractModule::requestInjection();
  • [DEL] DI logger
  • [DEL] DI compiler

BEAR.Resource

  • [DEL] シグナルパラメーター
  • [DEL] httpアダプター(guzzle)
  • [DEL] sync request

BEAR.Sunday

  • [MOD] アノテーション、Extention、Provideの整理
  • [DEL] Aura WebContext

BEAR.Package

  • [DEL] Devツール
  • [DEL] DB, Form, Sessionなどのライブラリ
  • [DEL] HTMl出力
  • [DEL] デモアプリ
  • [DEL] アプリケーションリフレクター
  • [ADD] コンテキストによるアプリケーションのデコレーション

検討点

  • AppMeta - 名前はこれでよいか? (AppPropertiesやAppConfigはどうか)
  • bootsrap.php - 名前はこれでよいか? (app_scriptやrun.phpはどうか)
  • 最低限のHTMLコンテキストを含めるべきではないか?
    • そうならTwig ? Aura.View ? moustache ?
  • 最低限のDAOを含めるべきではないか?
    • そうならDoctrine Dbal ? Aura.Sql ?
  • アプリケーションレイアウトはこれでよいか?
  • 定数ファイルを完全に外してよいか?
  • 0.xにあったscript/instance.phpファイルは要らないか?
  • アプリケーションスケルトンのtestsの内容

最後に

この記事はgithubにissue #159として上げました。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
2