ディレクトリ構造を横断して動的にコードをロードし、そこにあるモジュールを動的にロードしたいと考えています。モジュールをネストされたディレクトリに動的に組み込むにはどうしたらいいですか?
これを行う目的は、一連の検証を実行することです。最上位の検証が失敗した場合、子検証は実行されません。
コントローラオブジェクトがディレクトリをスキャンし、モジュールの階層を構築し、上位レベルの検証の成功/失敗に基づいてツリーの特定の部分をトラバースするかどうかの決定を下すことができたと思っていました。
たとえば、私は正規表現に対して実行したい一連の検証を行っているかもしれませんが、正規表現が存在しないか、空であれば検証は実行されません。この場合、トップレベルのディレクトリにはexists
の検証だけが含まれ、子ディレクトリには正規表現が存在する場合に実行される他のすべての検証が含まれます。
これらのバリデーションを別々のファイルで定義し、必要な階層を作成できることは、既存のクラスを開けたり、メソッドを追加したりする必要がなく、後でさらにバリデーションを追加するのに非常に便利です。
アプリケーションがディレクトリを動的にスキャンし、ファイル名をコレクションに保存し、そのコレクションの要素をrequireに使用する方法はありますか?私はそうは思わない。負荷はどうですか?
このようなデザインを実現する方法はありますか?それとも、私はそれをすべて間違って考えているのですか?代わりに他の方法論を考えるべきですか?
あなたの目標は本当にわかりません。ダイナミックなモジュール読み込みと比べて、検証チェーンに似ています。バリデーション*メソッド*は、バリデーションのコレクションの成功/失敗に関係なく存在することができます。 –