PSR対応
MugeSo opened this issue · 8 comments
namespaceの使い方などPSR対応してほしいです。
Ginq
オブジェクトがトップレベルでないほうがよい、という意味でしょうか?
あるいは、実装コード全体についてPSR準拠が弱い、ということでしょうか?
よろしくお願いいたします。
Ginqオブジェクトがトップレベルでないほうがよい、という意味でしょうか?
はい、そうです。PSR-0にしたがった名前空間は
<ベンダー名>(<名前空間>)*<クラス名>
という構造になります。
なるほど、ありがとうございます。
現在のGinq
の実装を Ginq\GinqContext
(名前は暫定)に追いやって、フォーマルには
use Ginq\GinqContext as Ginq;
で使うことを推奨し、いっぽう、名前空間を使わないようなカジュアルなPHPプログラムでも気軽に使ってもらえるようにトップレベルのGinq
も残しておく、というのはどうでしょうか。
つまりこんな感じです。ブランチ切ってみました。
https://github.com/akanehara/ginq/tree/feature/ginq-context/src/Ginq
\<Vendor Name>\(<Namespace>\)*<Class Name>
なので良いと思います。
ただ、use Ginq\GinqContext as Ginq;
の使い方では、Composerなどのクラスローダ使わないとautoloadが効かないことになってしまいます。
autoloadの実装を \Ginq
の中に入れたPHPスクリプト (たとえばsrc/Ginq/autoload.php
) に移し、それをユーザが任意で require_once
できるようにしたらどうかと思いました。「内部のautoloadは欲しい。Composerは使わない。Ginqクラスが欲しいわけじゃない」という変わった人がいたらそれで対応できるので。
こんな感じでどうでしょう。
https://github.com/akanehara/ginq/tree/feature/ginq-context
ついでに Ginq\GinqContext
を Ginq\Context
に変えました。
違うところで __DIR__
を使っちゃってたのでいっそこうしてしまうのはどうですか:
- require_once dirname(__FILE__) . "/Ginq/autoload.php";
+ require_once __DIR__ . "/Ginq/autoload.php";
👍
feature/ginq-context
ブランチを push しました
https://github.com/akanehara/ginq/tree/feature/ginq-context
#32 も解決してから devel
および master
にマージしたいので、ご意見ください。