問題タブ [doctrine]

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.

0 投票する
2 に答える
295 参照

search - ORM での検索戦略

さまざまな ORM での検索の処理に関する情報を探しています。

現在、私は PHP でいくつかの古いアプリケーションを再開発しています。要件の 1 つは、すべてまたはほとんどすべてを検索可能にすることです。これにより、ユーザーは「パンクロック ライブ」と入力するだけで、アプリはビデオ クリップ、音楽トラック、レビュー、今後のイベント、さらにはそのラベルが付いたユーザー コメントを検索します。仕方。

すべてが検索可能な環境では、ORM はこの機能を 2 つの方法でサポートする必要があります。

  • ORM の "O" 側にいくつかのインデックス API を提供する
  • 「R」側でデータベースを一括検索する手段を提供する

理想的な解決策は、検索された文字列に基づいて既製のオブジェクトを返すことです。必ずしも PHP ではなく、仕事をする優れたエンドツーエンドのソリューションを知っていますか? 同様の問題に対処した場合は、あなたの経験が何であるかを聞いてください。Luceneまたはセマンティック Webを使用する以上の何かが、ワンライナーの方法です ;-)*

0 投票する
4 に答える
11747 参照

php - Doctrine オブジェクトを var_dump すると Apache が殺されるのはなぜですか?

非常に奇妙な問題があります。Doctrine オブジェクトをvar_dump(またはprint_r) しようとすると、Apache が空の空白ページ (200 OK ヘッダー) で応答します。var_dump次のような通常のphp varを使用できます。

そして、それはうまくいきます。$connection->query()しかし、Doctrine クラスのオブジェクト ( の結果や、Doctrine を使用したオブジェクト モデルのクラスのインスタンスなど)を使用することはできません。

なぜこれが起こるのか誰にも分かりますか?

0 投票する
8 に答える
8985 参照

mysql - 同じテーブル内の 1 対多のリレーションシップ

単一のテーブルで一対多の関係を定義するために使用しようとしています。たとえば、次のエントリを持つ Groups テーブルがあるとします。

グループ Coldplay は、Capital Records グループの子であり、Management Company グループの子である可能性があり、Gnarls Barkley は、Atlantic Records の子のみである可能性があります。

この関係を表す最良の方法は何ですか。PHPとmySQLを使用しています。また、それが役立つ場合は、ORM として PHP-Doctrine を使用しています。

2 つの列を持つ group_groups というリンク テーブルを作成する必要があると考えていました。owner_id と group_id。ただし、これが最善の方法であるかどうかはわかりません。

任意の洞察をいただければ幸いです。私の問題を十分に説明したかどうか教えてください。

0 投票する
12 に答える
9768 参照

php - Doctrine ORM の経験はどうですか?

教義に関するあなたの経験は何ですか? 私は ORM のような人ではありませんでした。ほとんどの場合、adodb のような基本的な db 抽象化レイヤーだけで管理していました。

しかし、私はそれのすべての概念と利点を理解していました. そのため、ORM を必要とするプロジェクトが登場したとき、ORM フレームワークの 1 つを試してみようと思いました。

doctrine と propel のどちらかを決定する必要があるため、phing 要件を処理したくなかったので doctrine を選択しました。

何を間違えたのかわからない。私は正しい考え方で入ってきました。そして、私は決して「ジュニア」phpキディではありません。しかし、私はあらゆる段階でシステムと戦ってきました。多くのドキュメントがありますが、すべてが少し混乱しているように感じます。そして、YAML から db テーブルへの作成などの単純なものは機能せず、エラーも何も発生せずに失敗します。他の多くの機能は少しファンキーに機能しますが、機能する前に少しだけ微調整する必要があります。

多分私はここで愚かな初心者の仮定をいくつか作りました. でも今はそのシステムが大嫌いです。

誰かが提供できるヒントや、この件に関する優れたリソースや、これに関する権威あるサイト/人物を教えてくれるヒントはありますか? それとも、「うまく機能する」別の ORM フレームワークを推奨するだけでしょうか?

0 投票する
1 に答える
416 参照

php - doctrine が要求したよりも多くのフィールドを返すのはなぜですか?

Doctrine (バージョン 1.0.3) をいじって、私が書いているアプリのコレクションに適しているかどうかを確認しています。

クエリを実行しようとしていて、3 つのフィールドのみを返します。1 つのテーブルで正しいフィールドを取得していますが、結合テーブルでは 1 つのフィールドのみが必要な場合にすべてを取得しています。SQL がどうあるべきかを phpMyAdmin に書き出したところ、必要なものだけが返されます。

クエリで要求しなかった場合、説明の値が表示されます。これら 2 つのテーブルには、適切な setUp メソッドで定義された 1 対 1 の関係があります。

私が欠けているものの手がかりはありますか?

0 投票する
5 に答える
5298 参照

php - PHP Doctine の free() が機能しないのはなぜですか?

これは Doctrine ユーザーの皆さんのためのものです。n 秒ごとにテーブルをチェックして、処理されていないエントリを見つける PHP CLI デーモン プロセスがあります。基本的にFIFOです。とにかく、Doctrine がリソースを解放しないため、私は常に PHP に割り当てられたメモリを超えています。この問題に対処するために、クエリ オブジェクトに free を提供します。私はそれを機能させることができないようです。コードは次のとおりです。

私が間違っていることは何ですか?

編集:私は1.0.3を使用しています

編集:以下の提案をすべて試しました。unset()見つける前にそこにあったので、私は非常に期待していましfree()た。

これは、ヘルプに役立つ可能性のあるコードの詳細です。接続の開始と終了について質問する前に、子を生成するのはデーモン プロセスであり、私が経験したことから、接続は一意でなければなりません。

出力例:

0 投票する
1 に答える
2207 参照

php - Doctrine を使用して既存のテーブルから移行を生成できますか?

Doctrineのテーブルスキーマから移行スクリプトを自動的に生成することは可能ですか?

たとえば、新機能の大量の開発中に、最初のコードを書きながら、最初にテーブルを構築することがよくあります。機能がまだ初期段階にあるため、テーブルの定義が変更される可能性があるため、通常、最初に移行を作成しません。機能をコミットする準備ができたら、新しい機能のテーブル構造を生成するための移行を記述します。多くの場合、いくつかの新しいテーブルがあります。

私を怠け者と呼んでください。しかし、これらの移行を自動的に構築できたら最高です。

例えば:

doctrine build-migration table_name

このようなことを達成するために何かが存在しますか?

0 投票する
2 に答える
6572 参照

php - PHPUnit を使用した Doctrine オブジェクトの単体テスト

私は Doctrine オブジェクトを PHPUnit でテストしようと試み始めており、毎回モデル オブジェクトから DB を再ロードしたいと考えています。

私の最初の試みは次のようになります。

問題は、2 番目のテストで setUp() が再度呼び出されると、createTablesFromModels() が失敗し、テーブルが存在しないためにエラーが発生することです。

他の誰かが PHPUnit やその他の単体テストの目的で Doctrine 接続を再初期化した例を教えていただければ幸いです。

0 投票する
1 に答える
7103 参照

php - Doctrine (DQL) を使用して自分自身のテーブルに参加する

教義の DQL を使用してテーブル自体に参加しようとしています。シナリオは次のとおりです。

参照テーブルを介して製品テーブルにリンクされている製品属性値のテーブルがあります。製品属性値は製品のフィルターとして機能するため、複数の属性をフィルタリングするには、製品属性値テーブルをそれ自体に結合する必要があります。

私の方法は次のとおりです。

問題は、呼び出しから取得された結果の SQLgetSql()に、製品属性値リンク テーブルの別名が重複していることです (MySQL エラー: #1066 - Not unique table/alias: 'p6')。これは、商品間の参照関係(商品属性値リンク)と商品属性値の再利用によるものと考えられる。

生成される SQL は次のとおりです。

ご覧のとおり、P6 はエイリアスとして 2 回表示されます。

DQLを使用してこれを達成する正しい方法を知っている人はいますか?

よろしくお願いします。

0 投票する
5 に答える
188 参照

architecture - 企業は、すべての開発作業で単一のアーキテクチャの使用を強制する必要がありますか?

少し修辞的な質問であることは承知していますが、この教義を支持または拒否する意見を聞きたいと思っています。

ちょっとした背景: 私は厳密に社内で使用される大規模で成熟したアプリケーション (UI 用の VFP、中間およびバックエンド用の Oracle PL/SQL) を開発および保守しています。UI を C# で書き直すことを上司に依頼したところ、今後の開発作業はすべて Java /Spring で行うように言われました。デスクトップ アプリケーションから Web アプリケーションに移行する労力は、単純に C# に移行するよりもはるかに大きくなると説明しました。また、Web ブラウザーに移行するには、UI 全体を大幅に再設計する必要があることも説明しました。最後に、このアプリケーションは社内でのみ使用されるため、Web アーキテクチャを導入することで得られるメリットは、外部アプリケーションが受けるメリットほど大きくないことを説明しました。残念ながら、私の主張は彼らを揺るがしませんでした。

私の一部は、経験を積むことができるように、Java で書き換えを試みて降伏したくなる誘惑にかられますが、C# への移行に必要な時間と労力が 4 倍になるプロジェクトの惨事になる可能性があるのではないかと心配しています。

部門が 1 つの言語のみをサポートすることには利点があることは理解していますが、ハンマーでネジを打ち込もうとしているような気がします。

では、すべての開発作業に単一のソリューションを使用する企業の長所と短所は何でしょうか? また、他の誰かが、選択した言語が実際的な理由にもかかわらず拒否されたという同様の状況に陥っていますか?