akanehara / ginq

`LINQ to Object` inspired DSL for PHP
MIT License
193 stars 18 forks source link

PSR対応 #29

Closed MugeSo closed 11 years ago

MugeSo commented 11 years ago

namespaceの使い方などPSR対応してほしいです。

akanehara commented 11 years ago

Ginqオブジェクトがトップレベルでないほうがよい、という意味でしょうか? あるいは、実装コード全体についてPSR準拠が弱い、ということでしょうか? よろしくお願いいたします。

MugeSo commented 11 years ago

Ginqオブジェクトがトップレベルでないほうがよい、という意味でしょうか?

はい、そうです。PSR-0にしたがった名前空間は <ベンダー名>(<名前空間>)*<クラス名> という構造になります。

akanehara commented 11 years ago

なるほど、ありがとうございます。 現在のGinqの実装を Ginq\GinqContext (名前は暫定)に追いやって、フォーマルには

use Ginq\GinqContext as Ginq;

で使うことを推奨し、いっぽう、名前空間を使わないようなカジュアルなPHPプログラムでも気軽に使ってもらえるようにトップレベルのGinqも残しておく、というのはどうでしょうか。

つまりこんな感じです。ブランチ切ってみました。 https://github.com/akanehara/ginq/tree/feature/ginq-context/src/Ginq

tanakahisateru commented 11 years ago

\<Vendor Name>\(<Namespace>\)*<Class Name> なので良いと思います。

ただ、use Ginq\GinqContext as Ginq; の使い方では、Composerなどのクラスローダ使わないとautoloadが効かないことになってしまいます。

autoloadの実装を \Ginq の中に入れたPHPスクリプト (たとえばsrc/Ginq/autoload.php) に移し、それをユーザが任意で require_once できるようにしたらどうかと思いました。「内部のautoloadは欲しい。Composerは使わない。Ginqクラスが欲しいわけじゃない」という変わった人がいたらそれで対応できるので。

akanehara commented 11 years ago

こんな感じでどうでしょう。 https://github.com/akanehara/ginq/tree/feature/ginq-context

ついでに Ginq\GinqContextGinq\Context に変えました。

tanakahisateru commented 11 years ago

違うところで __DIR__ を使っちゃってたのでいっそこうしてしまうのはどうですか:

- require_once dirname(__FILE__) . "/Ginq/autoload.php";
+ require_once __DIR__ . "/Ginq/autoload.php";
akanehara commented 11 years ago

:+1:

akanehara commented 11 years ago

feature/ginq-context ブランチを push しました https://github.com/akanehara/ginq/tree/feature/ginq-context

32 も解決してから devel および master にマージしたいので、ご意見ください。