Symlexは、例によってベストプラクティスを促進する作業システムを提供することにより、アジャイルWeb開発を簡素化することを目的としています。
2014年の最初のリリース以来、マイクロサービス、CLI、シングルページのアプリケーションを迅速に構築するのに適していることが証明されています。テストからフォームやデータベースの抽象化までの作業例が完了しています。必要ないものを削除するだけです。
カーネルは小さく、アプリケーションのコンテキスト内でアプリケーションをブートストラップするためのサービスコンテナのみを作成します。構成と依存関係の噴射に単一の容器を使用すると、複雑さが減少し、他のフレームワークと比較してパフォーマンスが向上します。また、開発者がバンドルを理解せずに無意識のうちに設置することを防ぎます。結果は、膨らみ、よりシンプルで、よりシンプルで、より維持可能であり、アジャイル開発の基本であるテスト可能なコードを実現します。
ベンダーのロックインを回避し、フレームワークに独立したコードの再利用を可能にするために、可能な限りプレーンクラスが使用されます。 Tradeoffs.mdを参照してください。
PHPベースのバックエンドとJavaScriptライブラリまたはRESTクライアントを組み合わせることができます。フロントエンドのボイラープレートはあなたの便利さのためにあり、WebパックとVuetifyを使用して印象的なシングルページアプリケーションを構築するためにあなたをまっすぐに軌道に乗せます。demo.symlex.orgを参照してください。コマンドラインアプリケーションの作業例も含まれています。
完全なフレームワークのドキュメントは、docs.symlex.orgで見つけることができます。 Tuzi Liuは私たちのために中国の翻訳を維持しています。
注:https://github.com/symlex/symlex-coreには、カーネルとルーターが再利用可能なコンポーネントとして含まれています。
開始する前に、PHP 7.3+、Composer、Dockerがシステムにインストールされていることを確認してください(Howto for Mac OS X)。 get-composer.shを実行して、Linuxにローカルにcomposerをインストールします。 Dockerを使用する代わりに、既存のDockerFileに基づいて独自のランタイム環境をセットアップできます。さらに、フロントエンドを構築するには、データベースプラスNodeJとNPMが必要です。
ステップ1: composerを実行して新しいSymlexプロジェクトを作成します。
composer create-project symlex/symlex myapp
Composerはapp/config/parameters.ymlを生成するための構成値を要求します。
キャッシュファイルをアプリによって作成できるように、 storage/cacheが書き込み可能であることを確認してください。
ステップ2: docker-composeを使用してRoadRunnerとMariadbを開始します。
cd myapp
docker-compose up
注:この構成は、テストと開発目的のみを目的としています。詳細については、Docker-Compose.ymlのコメントを参照してください。セキュリティ上の理由で別のユーザーでDockerを実行する場合は、微調整する必要がある場合があります。 OS Xでは、Dockerの現在のリリースは、ホストのファイルシステムからPHPを実行するのが非常に遅いです。 docker-compose up -dバックグラウンドでdockerを実行しますが、この場合は役立つログメッセージが表示されません。
ステップ3:データベースを初期化し、フロントエンドコンポーネントを構築します。
make terminal
make all database
すべてが機能していることを確認するには、 make testを実行します。
注:このアプローチを使用して、後で他のCLIコマンドを実行することもできます。 MAKEは、典型的なUNIX開発環境でプリインストールする必要があります。そうしないと、 xcode-select --installを介してOS XにXcodeコマンドラインツールをインストールするか、Linuxにbuild-baseまたはbuild-essentialパッケージを追加することにより、最初に取得する必要があります。 Makefileは、すべてのターゲットのリストが含まれています。
インストールが成功した後、http:// localhost:8081/を開き、パスワードpasswdを使用して[email protected]としてログインします。
app/configにあるyamlファイルは、パラメーターとサービスに基づいてアプリを構成します。メイン構成ファイルはapp/config/web.ymlおよびapp/config/console.ymlです。
/etc/hostsにlocalhost-debugを追加して、それでサイトにアクセスすると、デバッグモードにロードされます(エラーページにスタックトレースとその他のデバッグ情報が表示されます)。
Mailhogユーザーインターフェイスは、http:// localhost:8025/で入手できます。これは、新しいユーザーが作成されたときにシステムによって自動的に送信されるメールを自動的に受信および表示するために使用できます。
より軽量のアプリを構築したい場合は、他の例をご覧ください。
完全なドキュメント:https://docs.symlex.org/en/latest/framework/
Symlexには、Nginxの代替として、高性能PHPアプリケーションサーバーであるRoadRunnerが含まれるようになりました。 Docker画像を作成すると、自動的にダウンロードされます。
Symlexのインストール手順> = 4.4.0は、NginxとPHP-FPMを使用しているため、以前のリリースでは機能しません。 webとphpの代わりに、RoadRunnerを搭載した単一のappサービスがあります。 nginxを好む場合は、古いリリースを使用するか、以前の構成を新しいリリースにコピーできます。私たちの例アプリのいくつかは、nginxも使用しています。
SymlexはMichael Mayerによって維持されており、例ごとにベストプラクティスを促進する作業システムを提供することにより、アジャイルWeb開発を簡素化することを目指しています。マイケルは2001年に最初のPHPフレームワークをリリースし、過去にさまざまな主要なフレームワークベンダーと協力してきました。これを構築することは、他の開発者による多くの以前の仕事がなければ不可能でした。貢献してくれた人とみんなに感謝します!
選択は生産性の敵です。別の言い方をすれば、ソリューションがすべてを行い、何についても意見がない場合、何も解決しません。 -アシム・アスラム
ご質問がある場合は、[email protected]に電子メールを送信してください。コマーシャルサポートが必要です。あらゆる種類の貢献を歓迎します。バグやアイデアがある場合は、問題を開く前にガイドをお読みください。
PHPフレームワークのパフォーマンスは、主に各リクエストに対して実行する必要があるコードの行に依存していることは明らかです。 Symlexはシンプルで無駄のないように設計されていますが、優れたパフォーマンスはこのアプローチの非常に重要な副産物です。
最良のコードはコードではありません。コードがない場合、バグはありません。学習するAPIはありません。厄介なUIはありません。最適なリファクタルは削除です。 -エリック・エリオット
phpbenchmarks.comが公開しているように、RESTリクエストは、他の一般的なPHPフレームワークと比較して40%以上高速です。
これらの応答時間は、5つの同時リクエストのみで、高速サーバーハードウェアで完全に最適化された生産モードで測定されたことに注意してください。実際には、絶対的な時間の点で違いははるかに大きいかもしれません。メモリ消費も考慮する必要があります。
なぜあなたは気にする必要がありますか?まず、ユーザーはそれを気に入るはずです。経験則として、 100ミリ秒は、システムが瞬時に反応していると感じるための限界についてです。つまり、結果を表示する以外に特別なフィードバックは必要ありません。合計応答時間には、ネットワーク(〜25ミリ秒)、ブラウザ、その他のオーバーヘッドも含まれます。これは、実際のビジネスロジックを実装するためにこれらの100ミリ秒のわずかな割合しか残っていません。第二に、サーバーインフラストラクチャのために多くのお金を節約し、テストがより速く実行されるため、開発者はより生産的です。
Silex自体には正しい方向を指す「標準版」が付属していないため、Symlexは2014年にシンプルなSilexのボイラープレートとして開始されました。 Symfonyの代わりにSilexを使用することは、Senfony + Fosrestbundleの軽量な代替品として、Sensiolabs(両方のフレームワークの作成者)によって推奨されました。
すぐに、Silexに付属するサービスコンテナであるPimpleは、Symfonyから来る開発者にとって面倒に感じられ、既存のコードを再利用するのが難しいことに気付きました。さらに、多くのSilexコードの例や現実世界のアプリケーションでさえ、コードのすべての部分(フレームワーク自体だけでなく)からサービスコンテナにアクセスしました。したがって、Symlexは依存関係の注入の厳格な使用を促進し、本格的なサービスコンテナの利便性とマイクロフレームワークの速度を組み合わせます。
今日、Symlexには独自のルーティングコンポーネント(Symfony 4に基づく)があり、Silexはもう使用していません。このフレームワークは、多数の異なるアプリケーションに役立つことが証明されています。それらのいくつかは、以前に通常のSymfonyカーネルに基づいており、複雑さでdrれ、開発モードで30秒をはるかに超える応答時間に苦しんでいたため、変更を行いました。 Symlexは、既存のコードベースに大きな変更を加えることなく、それらを軌道に戻しました。
Symlexは、ボランティアが完全に実行する非営利プロジェクトです。特にソフトウェアの使用についてサポートが必要な場合は、GitHubスポンサーを介して私たちをサポートすることを大いに歓迎します。彼らは最初の年にすべての寄付と一致します。
このプロジェクトが気に入っている場合は、スターを残してください。これを続けるためのさらなる動機を提供します。どうもありがとうございます! <3