コミュニケーションについて。
すべての人々は独立しています(またはほとんど)! すべての人がコミュニケーションを取ります!
誰もが人々の間のコミュニケーションの儀式、その原因を知っています。 彼女について必要な情報を入手するには、特定の人でなくてもかまいません。 誰かが答えを知っているかどうか、いわば空中で尋ねてください-彼は答えます。
JavaScriptとQtについて。
JavaScriptが大好きです。 その柔軟性が気に入っています。 私は彼のイベントシステムが好きです。
私は自分をC ++プログラマーとは考えていませんが、Qtは好きです。 彼(彼女?)の信号/スロットシステム。
言語とライブラリを覚えているのはなぜですか? 彼らは通信できるので、彼らを際立たせます。
アイデアについて。
すべてのモジュールは独立(またはほぼ)です! すべてのモジュールが通信します!
私が考えたとき:なぜ私の別の好きな言語を伝えることを学ぶ必要があるのですか? PHP
すべてのコンポーネントが互いに独立しており、さらに互いを知らないシステムを想像しました。
彼らは通信します。
-誰でも変数xxxの値を持っていますか?
-はい、もちろん、それを保持します。
-誰かが最後の10件のコメントをくれますか?
-問題ありません。
実装について。
この問題に関する情報を少し探した後、PHPでQtを実装する試み-QPHPを見つけましたが、これは私が望んでいたものではありません。 ezComponentsフレームワークにはシグナル/スロットの実装もありますが、そうではありません。 したがって、私は将来のライブラリの中核を設計し始めました。
私の想像では、彼女は次のように見えました。
図からわかるように、すべてのメッセージ/イベントはカーネルを通過するため、すべてのシステムコンポーネントはカーネルのみに依存しています。
カーネルに含めることにしたもの:
- 最も重要なことは、通信自体を実装するクラスシングルトンであり、基本的なQtメソッド(connect、disconnet、emit、isConnected)を模倣し、例外システム(カーネルが応答する必要のないメッセージ)を実装します
- 信号とスロットは、型制御のためにクラスでラップすることを決定し、実際にいくつかのロジックのカプセル化
- コンフィグレータは、コンフィグをロードするクラスであり、カーネルに含めることを決めました...これは重要なポイントですが、私には当然のように思えました(もちろん、モジュールはメッセージ付きでのみ通信します)
- メッセージで使用されるクラスのスーパークラス(メッセージマネージャー要求を透過的にします)
モジュールのスーパークラス-モジュールに関する情報をロードしたり、依存関係をチェックしたりできます。
実装コードは近日公開予定です。
使用について
典型的な使用方法は、次のようなものです。
<?php class module_test_1 extends module { public function __construct ( ) { // , , $this -> emit ( new signal ( 'config.getvar' , array ( 'var' => 'varname' , 'callback' => array ( $this , 'write' ) ) ) ; $this -> emit ( new signal ( 'module_test_1.run' ) ) ; } public function write ( $val ) { echo "varname = $val " ; } } class module_test_2 extends module { public function __construct ( ) { $this -> connect ( new slot ( 'module_test_1.run' , array ( $this , 'write' ) ) ) ; } public function write ( ) { echo "module_test_1 -> run" ; } } $test_2 = new module_test_2 ( ) ; $test_1 = new module_test_1 ( ) ;
<?php class module_test_1 extends module { public function __construct ( ) { // , , $this -> emit ( new signal ( 'config.getvar' , array ( 'var' => 'varname' , 'callback' => array ( $this , 'write' ) ) ) ; $this -> emit ( new signal ( 'module_test_1.run' ) ) ; } public function write ( $val ) { echo "varname = $val " ; } } class module_test_2 extends module { public function __construct ( ) { $this -> connect ( new slot ( 'module_test_1.run' , array ( $this , 'write' ) ) ) ; } public function write ( ) { echo "module_test_1 -> run" ; } } $test_2 = new module_test_2 ( ) ; $test_1 = new module_test_1 ( ) ;
<?php class module_test_1 extends module { public function __construct ( ) { // , , $this -> emit ( new signal ( 'config.getvar' , array ( 'var' => 'varname' , 'callback' => array ( $this , 'write' ) ) ) ; $this -> emit ( new signal ( 'module_test_1.run' ) ) ; } public function write ( $val ) { echo "varname = $val " ; } } class module_test_2 extends module { public function __construct ( ) { $this -> connect ( new slot ( 'module_test_1.run' , array ( $this , 'write' ) ) ) ; } public function write ( ) { echo "module_test_1 -> run" ; } } $test_2 = new module_test_2 ( ) ; $test_1 = new module_test_1 ( ) ;
<?php class module_test_1 extends module { public function __construct ( ) { // , , $this -> emit ( new signal ( 'config.getvar' , array ( 'var' => 'varname' , 'callback' => array ( $this , 'write' ) ) ) ; $this -> emit ( new signal ( 'module_test_1.run' ) ) ; } public function write ( $val ) { echo "varname = $val " ; } } class module_test_2 extends module { public function __construct ( ) { $this -> connect ( new slot ( 'module_test_1.run' , array ( $this , 'write' ) ) ) ; } public function write ( ) { echo "module_test_1 -> run" ; } } $test_2 = new module_test_2 ( ) ; $test_1 = new module_test_1 ( ) ;
<?php class module_test_1 extends module { public function __construct ( ) { // , , $this -> emit ( new signal ( 'config.getvar' , array ( 'var' => 'varname' , 'callback' => array ( $this , 'write' ) ) ) ; $this -> emit ( new signal ( 'module_test_1.run' ) ) ; } public function write ( $val ) { echo "varname = $val " ; } } class module_test_2 extends module { public function __construct ( ) { $this -> connect ( new slot ( 'module_test_1.run' , array ( $this , 'write' ) ) ) ; } public function write ( ) { echo "module_test_1 -> run" ; } } $test_2 = new module_test_2 ( ) ; $test_1 = new module_test_1 ( ) ;
<?php class module_test_1 extends module { public function __construct ( ) { // , , $this -> emit ( new signal ( 'config.getvar' , array ( 'var' => 'varname' , 'callback' => array ( $this , 'write' ) ) ) ; $this -> emit ( new signal ( 'module_test_1.run' ) ) ; } public function write ( $val ) { echo "varname = $val " ; } } class module_test_2 extends module { public function __construct ( ) { $this -> connect ( new slot ( 'module_test_1.run' , array ( $this , 'write' ) ) ) ; } public function write ( ) { echo "module_test_1 -> run" ; } } $test_2 = new module_test_2 ( ) ; $test_1 = new module_test_1 ( ) ;
<?php class module_test_1 extends module { public function __construct ( ) { // , , $this -> emit ( new signal ( 'config.getvar' , array ( 'var' => 'varname' , 'callback' => array ( $this , 'write' ) ) ) ; $this -> emit ( new signal ( 'module_test_1.run' ) ) ; } public function write ( $val ) { echo "varname = $val " ; } } class module_test_2 extends module { public function __construct ( ) { $this -> connect ( new slot ( 'module_test_1.run' , array ( $this , 'write' ) ) ) ; } public function write ( ) { echo "module_test_1 -> run" ; } } $test_2 = new module_test_2 ( ) ; $test_1 = new module_test_1 ( ) ;
<?php class module_test_1 extends module { public function __construct ( ) { // , , $this -> emit ( new signal ( 'config.getvar' , array ( 'var' => 'varname' , 'callback' => array ( $this , 'write' ) ) ) ; $this -> emit ( new signal ( 'module_test_1.run' ) ) ; } public function write ( $val ) { echo "varname = $val " ; } } class module_test_2 extends module { public function __construct ( ) { $this -> connect ( new slot ( 'module_test_1.run' , array ( $this , 'write' ) ) ) ; } public function write ( ) { echo "module_test_1 -> run" ; } } $test_2 = new module_test_2 ( ) ; $test_1 = new module_test_1 ( ) ;
<?php class module_test_1 extends module { public function __construct ( ) { // , , $this -> emit ( new signal ( 'config.getvar' , array ( 'var' => 'varname' , 'callback' => array ( $this , 'write' ) ) ) ; $this -> emit ( new signal ( 'module_test_1.run' ) ) ; } public function write ( $val ) { echo "varname = $val " ; } } class module_test_2 extends module { public function __construct ( ) { $this -> connect ( new slot ( 'module_test_1.run' , array ( $this , 'write' ) ) ) ; } public function write ( ) { echo "module_test_1 -> run" ; } } $test_2 = new module_test_2 ( ) ; $test_1 = new module_test_1 ( ) ;
<?php class module_test_1 extends module { public function __construct ( ) { // , , $this -> emit ( new signal ( 'config.getvar' , array ( 'var' => 'varname' , 'callback' => array ( $this , 'write' ) ) ) ; $this -> emit ( new signal ( 'module_test_1.run' ) ) ; } public function write ( $val ) { echo "varname = $val " ; } } class module_test_2 extends module { public function __construct ( ) { $this -> connect ( new slot ( 'module_test_1.run' , array ( $this , 'write' ) ) ) ; } public function write ( ) { echo "module_test_1 -> run" ; } } $test_2 = new module_test_2 ( ) ; $test_1 = new module_test_1 ( ) ;
<?php class module_test_1 extends module { public function __construct ( ) { // , , $this -> emit ( new signal ( 'config.getvar' , array ( 'var' => 'varname' , 'callback' => array ( $this , 'write' ) ) ) ; $this -> emit ( new signal ( 'module_test_1.run' ) ) ; } public function write ( $val ) { echo "varname = $val " ; } } class module_test_2 extends module { public function __construct ( ) { $this -> connect ( new slot ( 'module_test_1.run' , array ( $this , 'write' ) ) ) ; } public function write ( ) { echo "module_test_1 -> run" ; } } $test_2 = new module_test_2 ( ) ; $test_1 = new module_test_1 ( ) ;
<?php class module_test_1 extends module { public function __construct ( ) { // , , $this -> emit ( new signal ( 'config.getvar' , array ( 'var' => 'varname' , 'callback' => array ( $this , 'write' ) ) ) ; $this -> emit ( new signal ( 'module_test_1.run' ) ) ; } public function write ( $val ) { echo "varname = $val " ; } } class module_test_2 extends module { public function __construct ( ) { $this -> connect ( new slot ( 'module_test_1.run' , array ( $this , 'write' ) ) ) ; } public function write ( ) { echo "module_test_1 -> run" ; } } $test_2 = new module_test_2 ( ) ; $test_1 = new module_test_1 ( ) ;
<?php class module_test_1 extends module { public function __construct ( ) { // , , $this -> emit ( new signal ( 'config.getvar' , array ( 'var' => 'varname' , 'callback' => array ( $this , 'write' ) ) ) ; $this -> emit ( new signal ( 'module_test_1.run' ) ) ; } public function write ( $val ) { echo "varname = $val " ; } } class module_test_2 extends module { public function __construct ( ) { $this -> connect ( new slot ( 'module_test_1.run' , array ( $this , 'write' ) ) ) ; } public function write ( ) { echo "module_test_1 -> run" ; } } $test_2 = new module_test_2 ( ) ; $test_1 = new module_test_1 ( ) ;
<?php class module_test_1 extends module { public function __construct ( ) { // , , $this -> emit ( new signal ( 'config.getvar' , array ( 'var' => 'varname' , 'callback' => array ( $this , 'write' ) ) ) ; $this -> emit ( new signal ( 'module_test_1.run' ) ) ; } public function write ( $val ) { echo "varname = $val " ; } } class module_test_2 extends module { public function __construct ( ) { $this -> connect ( new slot ( 'module_test_1.run' , array ( $this , 'write' ) ) ) ; } public function write ( ) { echo "module_test_1 -> run" ; } } $test_2 = new module_test_2 ( ) ; $test_1 = new module_test_1 ( ) ;
<?php class module_test_1 extends module { public function __construct ( ) { // , , $this -> emit ( new signal ( 'config.getvar' , array ( 'var' => 'varname' , 'callback' => array ( $this , 'write' ) ) ) ; $this -> emit ( new signal ( 'module_test_1.run' ) ) ; } public function write ( $val ) { echo "varname = $val " ; } } class module_test_2 extends module { public function __construct ( ) { $this -> connect ( new slot ( 'module_test_1.run' , array ( $this , 'write' ) ) ) ; } public function write ( ) { echo "module_test_1 -> run" ; } } $test_2 = new module_test_2 ( ) ; $test_1 = new module_test_1 ( ) ;
<?php class module_test_1 extends module { public function __construct ( ) { // , , $this -> emit ( new signal ( 'config.getvar' , array ( 'var' => 'varname' , 'callback' => array ( $this , 'write' ) ) ) ; $this -> emit ( new signal ( 'module_test_1.run' ) ) ; } public function write ( $val ) { echo "varname = $val " ; } } class module_test_2 extends module { public function __construct ( ) { $this -> connect ( new slot ( 'module_test_1.run' , array ( $this , 'write' ) ) ) ; } public function write ( ) { echo "module_test_1 -> run" ; } } $test_2 = new module_test_2 ( ) ; $test_1 = new module_test_1 ( ) ;
<?php class module_test_1 extends module { public function __construct ( ) { // , , $this -> emit ( new signal ( 'config.getvar' , array ( 'var' => 'varname' , 'callback' => array ( $this , 'write' ) ) ) ; $this -> emit ( new signal ( 'module_test_1.run' ) ) ; } public function write ( $val ) { echo "varname = $val " ; } } class module_test_2 extends module { public function __construct ( ) { $this -> connect ( new slot ( 'module_test_1.run' , array ( $this , 'write' ) ) ) ; } public function write ( ) { echo "module_test_1 -> run" ; } } $test_2 = new module_test_2 ( ) ; $test_1 = new module_test_1 ( ) ;
<?php class module_test_1 extends module { public function __construct ( ) { // , , $this -> emit ( new signal ( 'config.getvar' , array ( 'var' => 'varname' , 'callback' => array ( $this , 'write' ) ) ) ; $this -> emit ( new signal ( 'module_test_1.run' ) ) ; } public function write ( $val ) { echo "varname = $val " ; } } class module_test_2 extends module { public function __construct ( ) { $this -> connect ( new slot ( 'module_test_1.run' , array ( $this , 'write' ) ) ) ; } public function write ( ) { echo "module_test_1 -> run" ; } } $test_2 = new module_test_2 ( ) ; $test_1 = new module_test_1 ( ) ;
<?php class module_test_1 extends module { public function __construct ( ) { // , , $this -> emit ( new signal ( 'config.getvar' , array ( 'var' => 'varname' , 'callback' => array ( $this , 'write' ) ) ) ; $this -> emit ( new signal ( 'module_test_1.run' ) ) ; } public function write ( $val ) { echo "varname = $val " ; } } class module_test_2 extends module { public function __construct ( ) { $this -> connect ( new slot ( 'module_test_1.run' , array ( $this , 'write' ) ) ) ; } public function write ( ) { echo "module_test_1 -> run" ; } } $test_2 = new module_test_2 ( ) ; $test_1 = new module_test_1 ( ) ;
<?php class module_test_1 extends module { public function __construct ( ) { // , , $this -> emit ( new signal ( 'config.getvar' , array ( 'var' => 'varname' , 'callback' => array ( $this , 'write' ) ) ) ; $this -> emit ( new signal ( 'module_test_1.run' ) ) ; } public function write ( $val ) { echo "varname = $val " ; } } class module_test_2 extends module { public function __construct ( ) { $this -> connect ( new slot ( 'module_test_1.run' , array ( $this , 'write' ) ) ) ; } public function write ( ) { echo "module_test_1 -> run" ; } } $test_2 = new module_test_2 ( ) ; $test_1 = new module_test_1 ( ) ;
<?php class module_test_1 extends module { public function __construct ( ) { // , , $this -> emit ( new signal ( 'config.getvar' , array ( 'var' => 'varname' , 'callback' => array ( $this , 'write' ) ) ) ; $this -> emit ( new signal ( 'module_test_1.run' ) ) ; } public function write ( $val ) { echo "varname = $val " ; } } class module_test_2 extends module { public function __construct ( ) { $this -> connect ( new slot ( 'module_test_1.run' , array ( $this , 'write' ) ) ) ; } public function write ( ) { echo "module_test_1 -> run" ; } } $test_2 = new module_test_2 ( ) ; $test_1 = new module_test_1 ( ) ;
<?php class module_test_1 extends module { public function __construct ( ) { // , , $this -> emit ( new signal ( 'config.getvar' , array ( 'var' => 'varname' , 'callback' => array ( $this , 'write' ) ) ) ; $this -> emit ( new signal ( 'module_test_1.run' ) ) ; } public function write ( $val ) { echo "varname = $val " ; } } class module_test_2 extends module { public function __construct ( ) { $this -> connect ( new slot ( 'module_test_1.run' , array ( $this , 'write' ) ) ) ; } public function write ( ) { echo "module_test_1 -> run" ; } } $test_2 = new module_test_2 ( ) ; $test_1 = new module_test_1 ( ) ;
<?php class module_test_1 extends module { public function __construct ( ) { // , , $this -> emit ( new signal ( 'config.getvar' , array ( 'var' => 'varname' , 'callback' => array ( $this , 'write' ) ) ) ; $this -> emit ( new signal ( 'module_test_1.run' ) ) ; } public function write ( $val ) { echo "varname = $val " ; } } class module_test_2 extends module { public function __construct ( ) { $this -> connect ( new slot ( 'module_test_1.run' , array ( $this , 'write' ) ) ) ; } public function write ( ) { echo "module_test_1 -> run" ; } } $test_2 = new module_test_2 ( ) ; $test_1 = new module_test_1 ( ) ;
<?php class module_test_1 extends module { public function __construct ( ) { // , , $this -> emit ( new signal ( 'config.getvar' , array ( 'var' => 'varname' , 'callback' => array ( $this , 'write' ) ) ) ; $this -> emit ( new signal ( 'module_test_1.run' ) ) ; } public function write ( $val ) { echo "varname = $val " ; } } class module_test_2 extends module { public function __construct ( ) { $this -> connect ( new slot ( 'module_test_1.run' , array ( $this , 'write' ) ) ) ; } public function write ( ) { echo "module_test_1 -> run" ; } } $test_2 = new module_test_2 ( ) ; $test_1 = new module_test_1 ( ) ;
<?php class module_test_1 extends module { public function __construct ( ) { // , , $this -> emit ( new signal ( 'config.getvar' , array ( 'var' => 'varname' , 'callback' => array ( $this , 'write' ) ) ) ; $this -> emit ( new signal ( 'module_test_1.run' ) ) ; } public function write ( $val ) { echo "varname = $val " ; } } class module_test_2 extends module { public function __construct ( ) { $this -> connect ( new slot ( 'module_test_1.run' , array ( $this , 'write' ) ) ) ; } public function write ( ) { echo "module_test_1 -> run" ; } } $test_2 = new module_test_2 ( ) ; $test_1 = new module_test_1 ( ) ;
<?php class module_test_1 extends module { public function __construct ( ) { // , , $this -> emit ( new signal ( 'config.getvar' , array ( 'var' => 'varname' , 'callback' => array ( $this , 'write' ) ) ) ; $this -> emit ( new signal ( 'module_test_1.run' ) ) ; } public function write ( $val ) { echo "varname = $val " ; } } class module_test_2 extends module { public function __construct ( ) { $this -> connect ( new slot ( 'module_test_1.run' , array ( $this , 'write' ) ) ) ; } public function write ( ) { echo "module_test_1 -> run" ; } } $test_2 = new module_test_2 ( ) ; $test_1 = new module_test_1 ( ) ;
<?php class module_test_1 extends module { public function __construct ( ) { // , , $this -> emit ( new signal ( 'config.getvar' , array ( 'var' => 'varname' , 'callback' => array ( $this , 'write' ) ) ) ; $this -> emit ( new signal ( 'module_test_1.run' ) ) ; } public function write ( $val ) { echo "varname = $val " ; } } class module_test_2 extends module { public function __construct ( ) { $this -> connect ( new slot ( 'module_test_1.run' , array ( $this , 'write' ) ) ) ; } public function write ( ) { echo "module_test_1 -> run" ; } } $test_2 = new module_test_2 ( ) ; $test_1 = new module_test_1 ( ) ;
______________________