LoginSignup
2
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として上げました。

2
2
0

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
  3. You can use dark theme
What you can do with signing up
2
2