もう一つのPHPフレームワークでない



導入
たった今、私は、典型的なPHPフレームワークを使用して、CodeIgniterから、symfonyに、そして、ほとんどララベルに至るプロジェクトに来ました.そのようなフレームワークを使用した経験から、複雑な機能に飛び込む必要があります私の意見では、完全な本格的なフレームワークに最適ですが、それは喜びを取ります.
私はいくつかの良い機能や概念を他のフレームワークや言語から、どのようにミドルウェアは、ExpressJSで使用された方法をポートすることができればよかったInclude エンティティフレームワークの方法.既存のフレームワークからいくつかの機能を希望すると同時に、ネットコアと多くの.
それは私が自分の問題に解決策を立てることを決めた方法ですマイティPHP .小さな趣味のプロジェクトとして始まったものは、徐々に私がさらに進むことができる何かに成長しました.
この記事では、現在のバージョンV 1のようなマイティックスの概念と特徴について簡単に強調します.最近リリースされた0.0.まるでそれがトレーラーの若干の種類であるかのように、それを見てください.

哲学・概念

裸になるように設計された
そこにはたくさんのフレームワークがあります.意図的に、しかし、あなたがより多くを成し遂げるのを援助するためにそうしました.しかし、私はより多くのものをよりよく、裸好む.MightyPHPを使用すると、全体の多くを設定する必要はありません.事態はそのままある.目的のためには常に一つの方法があり、それはそのままとどまる.

クリーン&ニート
我々があまりにたくさん書くとき、バグを導入するだけでなく、コードの読みやすさを混乱させます.何が私たちの編集者やIDEのほとんどの不動産を取る?私の意見では変数.
におけるクラス初期化の例
class FooController extends Controller
{
    public function bar(Request $request, UserModel $userModel){
        echo $request->query("name");
        $userModel->get();
    }
}
クラスの変数宣言を減らして、GET Goでそれを得てください!

ハイライト

好きなミドルウェア
私は、どのようにミドルウェアがExpressjsでルートで使われるか好きです;クリーン、読み取り可能、ストレートポイントに.
$index = new Router('/');
$index->use(["VerifyCsrf", "Foo"]);
特定のルートでのみミドルウェアをしたいですか?なぜでしょう.
$index = new Router('/');
$index->get('/profile', 'UserController@profile')->use('CheckAuth');

クエリビルダ
何も、ここにちょうど主流であるために、空想的でありません.任意のフレームワークの共通だが重要な機能!
class UsersModel extends Model
{
    public function get(){
        return $this->select('name', 'age')->get();
    }
}
あなたのモデルオブジェクトに子供(ren)項目(s)を含めるには?を含める!
class UsersModel extends Model
{
    public function get(){
        return $this->select('name', 'age')
               ->include((new UserProfiles()))
               ->get();
    }
}

コンソールコマンド
ララベルのようにartisan ? 我々はmighty . この機能はまだ開発中です.使用可能ですが、きれいではない.
例:コントローラを足場に入れるには
php mighty make:controller UserController

移動と播種
データベースとテーブルのメンテナンスの容易さ.種蒔の例
use \Application\Models\UsersModel;             
class seed_user{
    public function plant(){
        $date = date('Y-m-d');
        $password = password_hash('admin', PASSWORD_DEFAULT);

        $user = new UsersModel();
        $user->insert([
            "users_email" => "[email protected]",
            "users_password" => $password,
            "users_createdAt" => $date,
            "users_modifiedAt" => $date
        ]);
    }
}

他に何か何が来るのですか.
MightyPHPの最初のバージョンがリリースされました.努力は成長し、より良いものになるだろうそれは解決策の異なるセットを提供しているそこにPHPフレームワークの束の代わりに成長することを期待して.
現在のところ、MightyPHPはクロスデータベースクエリビルダーまたはORMをサポートしていませんが、実際には何が来るのパイプラインです.サポートは現在、MySQLまたはMariDBデータベースのみです.現在でさえ、すでに進行中の開発がありますSchematics 将来のクロスデータベース移行のためのケータリングになります今ではまだそのアスペクトの生のMySQLクエリに依存しています.

どこで、またはどのようにMightyPHPを試してみる?
公式サイトへのHeadhttps://mightyphp.com またはhttps://docs.mightyphp.com (ドキュメントはまだ進行中ですが、必要な内容のうち少なくとも75 %はそこにあります).