問題タブ [zend-config]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - Zend_Config_Writer_Ini を使用して application.ini パスを保持する方法
私は現在、Zend Framework プロジェクト テンプレートを受け取り、Phing パラメーターに従って構成する Phing のビルド システムに取り組んでいます。私が遭遇した問題の 1 つは、Zend_Config_Writer_Ini を使用する場合です。
私の Phing タスクは、repo から application.default.ini という事前設定されたファイルを取得し、Zend_Config_Ini を使用してこれを変更し、ビルド ファイルからパラメーター (データベースの詳細など) を追加します。次に、それを application.ini に書き込み、プロジェクトで使用できるようにします。関連するタスク コードの簡略化されたバージョンは次のようになります。
これは、データベースの資格情報に関する限りは正常に機能しますが、定義済みの定数を含む事前設定されたパスに関しては、何か問題が発生します。例えば:
になります:
さまざまな ini ファイルの読み取り/書き込み時にこれらの構成行を保持する方法はありますか、それともビルド ファイルを再構築してタスクを実行する前にファイルをコピーし、変更が必要な ini 行のみを変更する必要がありますか?
php - Zend Framework: ini ファイルに関係なく、エラー報告がシャットダウンされます
変数/属性の型が間違っていると、よく問題が発生します。問題は、PHP (5.3) がクラッシュするだけで、エラーを出力せず、エラー ログ (*1) に書き込むことさえないため、トレースが難しいことです。クラッシュするだけです。
配列のような文字列へのアクセスは、追跡不可能であってはならないと思いますか? つまり、PHP は C ではありませんよね?
この動作を変更する方法や、この問題を回避するためのベスト プラクティスはありますか? いつでもどこでもすべての変数をチェックして、5 倍のコードを書くことは別として?
[更新] : わかりました。Zend の外部でコードを単純化すると、うまくいくようです。何らかの形で Zend に関連している必要があります。私はすべてのphpSettingsをapplication.iniに設定していますが:
そして、エラーの原因となっているコード (私が試したようにサンドボックスで動作します) は次のとおりです。
$obj は json 文字列です。
[更新 2] : コードのすぐ上で ini_get を使用して php 設定をエコーしようとしたところ、error_reporting は E_ALL|E_STRICT にあり、display_error は ON などと表示されます。
したがって、この:
これを出す:
そして、停止します。何か案は?
*1. php.ini には、display_errors = On および error_reporting = E_ALL などがあります。すべて良い。
php - Zend Config の Ini キャッシング
私の Zend アプリは 3 つの ini 構成ファイルを使用しており、合計で 200 行を超える解析行があり、100 を超える命令が含まれています。これらのファイルはリクエストごとに解析されますか? あると言う人もいます (ここやここのように)。もしそうなら、これは効率の問題ではありませんか?
これらのリンクのコメントにはさまざまな意見があります。ini 構成ファイルを避けて PHP で構成を行うべきだと言う人もいれば、Zend_Cache_Frontend_File を使用できると言う人もいれば、問題ではないと言う人もいます。しかし、大量のトラフィックが予想される場合、1 回のリクエストで 200 行のテキストを解析するのはすぐに問題になるのではないでしょうか?
キャッシュ技術の使用をお勧めする場合、それをどのように実装するかを正確に説明していただけますか?
zend-framework - Zend_RegistryとZend_Cacheへのデータの保存
これまでBootstrap.php
、application.ini構成をZend_Registryとロガーのインスタンスにロードするために使用してきました。これらをZend_Cache内に保存する方が、アプリケーションの存続期間を通じて変更されないままであり、アプリケーションを再デプロイするたびに、とにかく最初の実行時にキャッシュがクリアされるため、より良いソリューションになるかどうか疑問に思いました。これについてのあなたの評決は何ですか?
また、保護された変数にロガーと構成が格納されているコントローラーを作成することを提案した人もいます。そうすれば、すべてのアプリケーションコントローラーがそれを継承します。私はそれが現在のZend_Registryの解決策よりも優れた解決策であるとは思いませんが、私が正当化されるかどうかはわかりません。
zend-framework - zend_form構成の問題
私は次のような構造を持っています:
indexController.phpで
と私はエラーが発生します
致命的なエラー:クラス'Structure_Form_Department'が見つかりません
しようとするとzf enable form module
-受け取る:
これは設定のような問題だと思います...しかし、私が何をする必要があるのか理解していません...
編集1
ここで良い解決策を見つけました
しかし、何らかの方法で、zendは_init...
デフォルトのbootstrap.php...から関数の実行を繰り返し開始します。
zend-framework - Zend Framework / フォーム要素がドロップダウン ボックスではなくテキスト ボックスとしてレンダリングされる
config.ini ファイルに次のものがあります: (Zend_Form_Element)
ご覧のとおり、これはドロップダウン (選択) ボックスであるはずですが、標準のテキスト ボックスとしてレンダリングされています。私は何を間違っていますか?
--> 編集
要素をフォームに結び付けるのではなく、データベースに結び付けようとしています: 私のコードでは、次のようになります。
そこから、フォームがデータを表すデータベース テーブル (必要に応じて 1 つ以上のテーブル) を取得します。このアプローチの理由は、(今後)、特定のフォームに属するフィールド/要素のリストである構成ファイルを (ini またはその他のストレージ方法によって) 定義したいということです (プログラマー以外のタイプが簡単に編集できること)、「汎用」フォーム クラスが読み取り、要素情報を取り込み、その場でフォームを作成すること。
ただし、これはまだ理解していない別の問題を引き起こします。それは、選択要素にテーブルルックアップを使用する方法です(ルックアップのデータベース検索をフォームにコーディングせずに、非ユーザーが簡単にプログラミングなしで純粋に構成を定義しますが、それはここでの私の質問の一部ではないまったく別のトピックです. (とにかく、問題のその部分に対する実行可能なアイデア/解決策があると思います) -- 追加の構成エントリと一般的なルーチンかなり。
私の思考プロセスと、上記の例のようにそれを行っている理由が明確になることを願っています.
zend-form - Zend_config_Iniでdatepicker要素を設定する
Zend_Config_Iniを使用してフォーム要素を作成しようとしています。他の要素の中で、動作しないdatepicker要素(zendx_jquery_form_element_datepicker)があります。
私はそのように要素を設定しようとしました:
と
どちらの方法でも同じエラーメッセージで終了します。
また
助けてください、ありがとう。
php - Zend_Config_ini はセクションやキーをその場で追加しますか?
システム上のクライアントごとにiniファイルがあり、その場で作成される新しいセクションとキーを追加します。
次のように考える必要があります。
現在のiniファイル:
そして、これを (php/zend を使用して) コードを次のように変更する必要があります。
key_a という名前の新しいキーを持つ section_b という名前の新しいセクションを追加する必要がありますが、「$ini->add('section_b','key_a')」のような方法が Zend_Ini_Config に見つかりません。
オブス:
どんな助けでも!!
アップデート
zend-framework - Zend 構成の継承
私のapplication.iniにこれらの値があります
問題は、すべてのデータベースと例外値が適切に機能することです。つまり、想定どおりに適切に継承されます。
しかし、Title と URL に設定した値は適切に継承されず、最初に定義された値のみが使用されます。
どうしてこれなの?これは設計によるものですか?データベースや例外などの定義済み/標準の環境値のみが継承されますか?
それとも私はどこかで間違っていますか?
php - Zend_Config オブジェクトを使用して Zend_Application をロードすると、ファイル名を送信した場合と異なる結果が生じるのはなぜですか?
Zend_Application オブジェクトを Zend_Config オブジェクトでロードすると、代わりにファイル名で Zend_Application オブジェクトをロードする場合とは異なる結果が生成されるという問題が発生しているようです。私の要点を説明するために、次の 2 つの読み込み方法があります。
これは機能せず、エラーが表示されます:
致命的なエラー: /var/www/RoommateExpenseBuddy/allan/library/Zend/Application/Bootstrap/Bootstrap.php:91 に「No default controller directory registered with front controller」というメッセージを含む例外「Zend_Application_Bootstrap_Exception」がキャッチされない:91
スタック トレース: #0 /var/www/RoommateExpenseBuddy/allan/library/Zend/Application.php(366): Zend_Application_Bootstrap_Bootstrap->run()
#1 /var/www/RoommateExpenseBuddy/allan/public/index.php(36): Zend_Application->run()
#2 {main} が /var/www/RoommateExpenseBuddy/allan/library/Zend/Application/Bootstrap/Bootstrap.php の 91 行目にスローされる
どちらも次のような同じファイルを使用しています。
私のディレクトリ構造は、重要なフォルダを展開するとこのようになります。
繰り返しますが、Zend_Application のコンストラクターでファイル名を使用して INI ファイルをロードすると、期待どおりの結果が得られます (動作中のアプリ)。Zend_Application のコンストラクターに Config オブジェクトを渡すと、上記のエラーが発生します。
なぜこれが違いを生むのかについての手がかりはありますか?