問題タブ [zend-framework]
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 - URL マッピングに関する Zend Framework の問題
アクションをベース URL とデフォルト コントローラにマップしようとしています。
これは簡単な機能であるか、「すぐに使える」機能であるはずですが、Zend Framework を使用して、デフォルト コントローラーのアクションをベース URL にどのようにマップしますか? 私はフレームワークにかなり慣れていないので、明らかな何かが欠けていることを願っています。
マッピングしようとしています:
domain.com/index/my-page から domain.com/my-page
デフォルトで設定されている他のルートを壊すことなく。
Zend_Router を使用してハッキングすることはできますが、他のルールに違反しています (例: /:controller/:action /:module/:controller/:action)。
注: /index/my-page は URL の例です。すべての indexController アクションで動的に機能する必要があります。
「tharkun」によって要求された URL マッピングの例 indexController にはメソッド indexAction および contactAction があり、URL が必要です
2 番目のコントローラー testController にはメソッド indexAction と monkeyAction があり、URL が必要です
基本的に - システムが VAR のコントローラーを見つけられない場合、デフォルトのコントローラーで VAR のアクションを探します。
php - Zend Framework を使用する場合、検証ロジックはどこに配置しますか?
Zend Framework で検証ロジックを実装する方法の例をいくつか探しています。
私の理想的な実装では、検証をコントローラーの外部に保持し、「パスワードの確認」フィールドとファイルのアップロードを検証できるようにします。
php - zend フレームワークを使用して動的サイドバーを作成するベスト プラクティス
Zend フレームワークを使用して動的サイドバーまたはその他の非コンテンツ レイアウトの場所を作成するためのベスト プラクティスは何ですか。この時点で、WidgetsController というコントローラー ウィッチを作成しました。このコントローラーでは、サイドバーの「サイドバー」応答セグメントを使用していくつかのアクションを定義し、IndexController では $this->view->action(); でそれらを呼び出します。機能ですが、動的なサイドバーを作成するのがベスト プラクティスだとは思いません。回答ありがとうございます。
php - Zend モデルで複数のテーブルを使用し、結合された結果セットを返す
こんにちは、これは非常に具体的または非常に一般的な質問です。よくわかりませんが、Zend フレームワークは初めてです。一般的には oo です。これが愚かな Q である場合は、しばらくお待ちください...
とにかく、次のようなモデルを作成したいと思います。
単純な Zend の例のほとんどは、モデル内で 1 つのテーブルしか使用していないように見えます。これがあまりにも一般的な質問である場合、2 つのテーブルで動作し、配列を返すモデルの例は素晴らしいでしょう!
事前に助けてくれてありがとう!
php - JSで文字列を翻訳する方法
私は、GetText で Zend フレームワーク Zend_Translate を使用する PHP 部分の複数の言語に翻訳したいプロジェクトを持っています。今度はJS部分も翻訳したいです。
私は jQuery JS Framework を使用しています。JS ファイルの翻訳についてのご意見をお待ちしております。
php - 複数のスキーマ/データベースを持つ Zend Framework?
以下の例のように定義したテーブルがいくつかあります。
これは、1 つのデフォルトの Db アダプターを使用して完全に機能するようです (2 つのスキーマが同じサーバー上にあるため)。
次のようなコードが機能します。
ただし、Zend Framework のテーブル リレーションシップ関数 (つまり、findDependantRowset() または findManyToManyRowset()) で同じモデルを使用しようとすると、クエリはデフォルト アダプタのスキーマを使用して実行しようとし、適切なスキーマを使用しません。モデルクラスで定義されています。
これはバグですか?デフォルトの Db アダプタでデフォルトとして定義されたスキーマではなく、テーブル クラスで定義したスキーマを使用するように ZF に強制するにはどうすればよいですか?
mysql - Zend_db_table を使用して mySQL に time + n を挿入してください!
$data = array ( 'next' => "NOW() + 5", 'interval' => $dom["USER"][0]["STATUSES_COUNT"][0]["data"], 'good' => $good, 'tries' => $p->tries + 1 ); $where = $service->getAdapter()->quoteInto('id = ?', $p->id);
$service->update($data, $where);
Zend と mySQL で PHP を使用してデータベースに何かを挿入します。"next" => "NOW()" は機能しません。CURRENT_TIMESTAMP をデフォルト値として設定することもできますが、実際に必要なのは、この瞬間を参照するタイムスタンプと時間を挿入することです。
プログラムの一部を書き直して、純粋な php 日付 (純粋な mySQL 日付の代わりに) を使用することができます。何がベストなのか、どうすればいいのかわからない。タイミングを実行する mySQL でこの更新を機能させる方法を知っていますか?
php - Zend_Framework - $_GET および $_POST (HTTP 要求) 処理を配置する場所は?
私は最近、この投稿を読み、すべてが同じ考えを示唆しているように見える一連の他の投稿につながりました: モデルはすべてを行い、ビューはモデルと直接通信できる必要があり、コントローラーは邪魔にならないようにします。ただし、示されている例はすべてかなり単純化されており、リクエスト/レスポンス サイクルの完全な処理を実装しようとした例を実際に示している例はありません。 $_GET、$_POST など) 自体は?" 「コントローラーは、必要なモデルをインスタンス化し、モデルをビューに渡すためのパススルーとしてのみ動作する必要がありますか?」。(実際、モデルに Zend_Form オブジェクトを埋め込む極端な例を 1 つ見つけました)
Fowler が MVC とコントローラーについて一般的に述べていることを読んだところ、一見したところ、コントローラー レイヤーが薄いほど優れているように思えます。しかし、私は時間をかけて MVC とフロント コントローラーの両方について彼が言っていることを調べました (両方のパターンがコントローラーを定義するため、混乱を招くだけです)。 MVC で Controller の機能を実行し、Front Controller で Command オブジェクトの機能を実行する複合オブジェクト (またはそのようなもの)。
したがって、アプリに同様のパターンを実装した他の人の一般的な意見はどうなるのだろうかと思います-コントローラーレイヤー内でリクエストを完全に処理しますか、それともモデルにリクエストを認識させ、モデル内でパラメーターを直接処理しますか?
php - Zend Framework で複数のストアド プロシージャを呼び出す
Zend Framework 1.7.2、MySQL、および MySQLi PDO アダプターを使用しています。特定のアクション中に複数のストアド プロシージャを呼び出したいと考えています。Windows では、複数のストアド プロシージャの呼び出しに問題があることがわかりました。試してみると、次のエラー メッセージが表示されます。
SQLSTATE [HY000]: 一般エラー: 2014 他のバッファーされていないクエリがアクティブな間は、クエリを実行できません。PDOStatement::fetchAll() の使用を検討してください。または、コードが mysql に対してのみ実行される場合は、PDO::MYSQL_ATTR_USE_BUFFERED_QUERY 属性を設定して、クエリのバッファリングを有効にすることができます。
この問題を回避するには、ストアド プロシージャを呼び出すたびにデータベースへの接続を閉じるだけでよいことがわかりました。
これは私にとってはうまくいきましたが、今ではトランザクションにラップされた複数のストアド プロシージャを呼び出したいと思っています。もちろん、開いているトランザクションのロールバックが発生するため、この状況では接続を閉じることはできません。この問題を解決する方法、および/または問題を回避する方法についてのアイデア。