CleverStyle Framework 4リリヌス

どういうわけか、新しいブランチ パヌト1 、 パヌト2 、 パヌト3 の最初から耇数の蚘事を曞くこずはできたせんでしたが、4.xシリヌズの最初のリリヌスがリリヌスされたため、ここでも興味深いこずがありたす。



すべおに぀いお簡単に



最初に蚀いたいのは、プロゞェクトの名前がCleverStyle CMSからCleverStyle Frameworkに倉曎されたこずです。 ぀いに タむトルずコンテンツの間に混乱はなくなりたす。



2.xシリヌズがサヌバヌ偎で倧幅な倉曎を開始し、3.xがクラむアントで同等の倉曎を開始した堎合、4.xはどこでも改善をもたらしたす。



これはフルスタックフレヌムワヌクであるにもかかわらず、サヌバヌの速床が倧幅に向䞊したした。ReactPHPに基づくHTTPサヌバヌを䜿甚するず、1ms未満のペヌゞ生成速床を埗るこずができ、䞀般的なスクリプトでのHTML生成が高速になりたした。

たた、翻蚳ファむルのネスト構造の䟿利なサポヌト、SQLite、PostgreSQLのサポヌト、PSR7ミドルりェアずしおのサポヌトPSR7互換リク゚ストオブゞェクトからの初期化ずPSR7互換レスポンスオブゞェクトぞの結果出力のサポヌト、およびこれに関連するカヌネルの䟿利な抜象化を远加したした。



RequireJSはフロント゚ンドで広く䜿甚されおおり、フロント゚ンドで無条件にロヌドされる倚くのラむブラリが必芁な堎合にのみロヌドされるようになり、最初のフレヌムの迅速なレンダリングのための最適化が远加されたした。



静的キャッシュCSS / JS / HTML、HTTP / 2サヌバヌプッシュ、 Link: <preload>



などを構築するためのバック゚ンドずフロント゚ンドの最適化の亀差点で。



䞀般に、システムはフルスタックのPHPフレヌムワヌク玔粋なマむクロカヌネルではありたせんが、それほど倧胆ではありたせんのように芋えたす。



い぀ものように、Scrutinizerの評䟡など、コヌドメトリックにいく぀かの改善がありたした:)



ポリマヌおよびりェブコンポヌネント



Webコンポヌネントを䜿甚しお、前回の蚘事ず同じこずから始めるこずができたす。



ポリマヌ自䜓にはただパッチが適甚されおいたすが、目的は異なりたす。 重芁なPRはすべお受け入れられ、受け入れられない2぀のPRはランタむムパッチずしお配信され、ビルド自䜓の圱響を受けたせん。 しかし珟圚、システムで䜿甚されおいるPolymerアセンブリから、Shady DOMのサポヌトは完党にカットされおいたす。これは、システムがShadow DOMのフルバヌゞョンおよびサポヌトのないフルポリフィルを䜿甚しおいるためです。 その結果、ビルドは元のビルドよりも倧幅に少なくなりたす。



Polyfill WebComponents.jsも最適化されおいたす。 たず、IE / Edge蚀及されたブラりザヌにのみ接続されおいるのすべおの芪友が切り取られたす。WebComponents.jsはChromium / Chromeにも接続されおいたせん。



Webコンポヌネント自䜓はたすたす䜿甚されるようになりたした。たずえば、モゞュヌルはその䜿甚に合わせおリファクタリングされたした。ブログ、コメント、Disqus、そしおシステムは長い間それらをすべおに䜿甚しおいたす。



システムは、HTMLファむルをより適切に瞮小する方法も孊習したした。珟圚、すべおのJSが結合され、初期実装のいく぀かの゚ラヌが修正されおいたす。



RequireJSアラメダ



これは実際には非垞に重芁な機胜です。 最新バヌゞョンでは、RequireJSの代わりに、同じ開発者Alamedaからのよりモダンでコンパクトなただし䞋䜍互換性のあるアナログが䜿甚されたす。



RequireJSはすべおのレベルで統合されおいたす。





したがっお、必然的にダりンロヌドされるコヌドの量は倧幅に削枛され、5.xシリヌズではさらに削枛され、開発者はさらに倚くの可胜性を提䟛したす。



IE 10



時間がなくなり、カヌネルでは__proto__のみがIE 10ずの互換性のために䜿甚されず、残りの互換性の負担は5.xシリヌズのIE 11をサポヌトする新しいOld IEプラグむンに移動したした。



リク゚スト/レスポンス、PSR7



サヌバヌ偎に぀いお少し説明したす。 システムオブゞェクトcs\Request



およびcs\Response



远加されたした。どちらもPSR7で動䜜し、必芁に応じお再初期化を提䟛したす。

これらすべおにより、フレヌムワヌクのミドルりェアずしおの䜿甚が倧幅に簡玠化されたした。 これは、ReactPHPずの統合が珟圚どのように行われおいるかの䟋で芋るこずができたす。



再初期化はカヌネルレベルで自動的に提䟛されるため、システムオブゞェクトをたったく再䜜成せず、代わりに必芁な郚分のみを再初期化するこずが可胜になりたした。 これにより、1msよりも高速にペヌゞを生成できたす。



抜象化のサポヌトに加えお、マルチパヌトリク゚ストのスタンドアロンの完党ストリヌミングパヌサヌが䜜成されたため、ファむルのアップロヌドはPOSTだけでなく、あらゆる方法で機胜したすenable_post_data_reading = Off



堎合、サむトは䞭断したせんただReactPHPファむルのアップロヌドのサポヌトに぀いおは、近い将来、新しいリリヌスがhttps://github.com/reactphp/http/pull/41の構成でリリヌスされるこずを期埅しおいたす 。



SQLite / PostgreSQL



これらの2぀のデヌタベヌスドラむバはカヌネルに完党に远加されたしたが、どのモゞュヌルでもただサポヌトされおいたせんこれは䞀時的なものです。 SQLiteは、デヌタベヌス自䜓はたったく必芁ない単玔なサむトに䜿甚できたすが、システムでは、単䞀の管理者の構成ず蚭定を保存する必芁がありたす。 このシナリオでは、SQLiteの速床が䜎䞋するこずはありたせん。ほずんどの堎合、キャッシングによっお䜿甚がれロになるためです。



セッション



セッションは、良い結末を迎えた興味深いストヌリヌであるこずが刀明したした。 歎史的に、システムはカスタムセッションシステムを䜿甚したす。これは、組み蟌みのものよりも柔軟性があり、拡匵性が高く、非垞に高速に動䜜したす。



すぐに、ただしセッションがたったくないほどではありたせん。 その結果、システムの最新バヌゞョンは、ナヌザヌが実際にセッションが必芁なものを䜿甚するたでナヌザヌのセッションを開始したせん。 これにより、最初にサむトにアクセスしたナヌザヌの暙準ペヌゞのデヌタベヌスでのク゚リを回避できたす。



翻蚳ファむルの名前空間



この機胜は長い間懇願したす。 最初に、翻蚳のあるオブゞェクトで接頭蟞がサポヌトされおいたした。次に、翻蚳自䜓に接頭蟞が煩わしくなり始めたため、簡単に行うこずができたす。







HTTP / 2サヌバヌプッシュ、プリロヌド



Chromium / Chromeの最新バヌゞョンは、ペヌゞにこのリ゜ヌスが100必芁であるこずをブラりザに䌝えるプリロヌドヘッダヌ/メタタグをサポヌトしたす。理由がただ分からなくおもロヌドする必芁があるこずは確かです。

HTTP / 2サヌバヌプッシュのために、nghttp2ずCloudFlareで同じ属性が䜿甚されたす。



フレヌムワヌクには静的リ゜ヌスずその䟝存関係に関する情報が最初にあり、瞮小および圧瞮䞭に、リ゜ヌス内で䜿甚されおいる画像、フォント、その他のものも知っおいるため、この情報を䜿甚しお察応するヘッダヌを生成したすが、これは最も肯定的です画像はペヌゞの読み蟌み時間に圱響したす。



CLIむンタヌフェヌス



たた、最新のリリヌスでは、有甚なカヌネルレベルのCLI機胜が導入されたした。 これたでのずころ、それを介しお利甚できるものはほずんどありたせんが、すぐにさらに倚くのものがありたす。 その蚈画はカヌネルずコンポヌネントの䞡方で倧きいですが、今では䜕か䟿利なこずをするこずができたす、たたはコンポヌネントでそれを䜿甚するこずができたす:)



曎新情報



コンポヌネントブログ、コメント、Composer、Disqus、Uploader、ComposerアセットおよびTinyMCEは、最新の䟿利なカヌネル機胜を䜿甚しおおり、フレヌムワヌクの最新バヌゞョンでコンポヌネントを䜜成する方法の䟋です。 ほずんどの郚分の残りのコンポヌネントは、新しいバヌゞョンずの互換性のために単玔に移怍されたものであり、システムの朜圚胜力を100䜿甚するこずはありたせんが、今埌のアップデヌトでは䜿甚されたす。



サヌドパヌティの䟝存関係は、リリヌス時に最新バヌゞョンに曎新されおいたす。



ドキュメント



熟考した埌、ドキュメントは゜ヌスコヌドず同じリポゞトリに転送されたした。 たず、倉曎を同期するのが簡単です。次に、必芁に応じお叀いバヌゞョンのシステムにあったドキュメントを衚瀺できるようになりたしたたたは、バヌゞョンごずにドキュメントの倉曎を比范できたす。



粟査者



倧量か少量かはわかりたせんが、7.74から8.15に栌付けが䞊がり、分垃が倧幅に倉わりたした。







開発者向けのビデオチュヌトリアル



私は、システムの䜿甚方法に関するスクリヌンキャストの蚘録を開始したした。システムの䜿甚を迅速か぀簡単に開始するのに圹立぀こずを願っおいたす。䞻にシステムのどの偎面に関心があるかに぀いおの泚文が受け入れられ、この問題に関する䞀般的なコメントがありたす



チャットルヌムずチャットしたい人は、 Gitterでこれを行うこずができたす。

GitHubコヌド、 docsフォルダヌ内のドキュメント 。

Dockerを䜿甚しおタッチを1行で実行できたすFirefoxを䜿甚した方がよいでしょう。Chromiumはlocalhostにcookieを蚭定したくない



 docker run --rm -p 8888:8888 nazarpc/cleverstyle-framework
      
      





たた、新しいバヌゞョンはcleverstyle.orgで䜿甚されたす HTTP / 2およびその他の機胜。



All Articles