0

私はsymfony1.4を使用して出会い系サイトを作成しています(これはsymfonyを使用した最初のプロジェクトです)。問題は、オンラインのユーザーが10人以下の場合、サーバーがフリーズすることです。yslowを使用してjs、css、スプライトを最適化しようとしましたが、グレードAを取得しましたが、それでも問題は常に存在します。だから私はアプリケーションを構築する方法が間違っているかもしれないと思うので、ここにウェブサイトnaijaconnexion.comがあります私はあなたにアドバイスとそうすることを求めています私はこの問題を克服します

十分に明確でない場合は、質問してください。cpanel管理者アクセスが必要な場合は、投稿します。

私は本当に本当にあなたの助けが必要です

たとえば、ホームページのアクションにこのコードがありますが、問題ないように見えますか、それとも最適化する必要がありますか。

    $this->me = $this->getUser()->getGuardUser()->getPerson();
    $this->cities = Doctrine_Core::getTable('City')->findByDql("zipcode=''");
    $this->countries = Doctrine_Core::getTable('City')->findByDql("zipcode='10'");
    $this->contacts = $this->me->getContacts();
    $this->favorites = $this->me->getFavorites();
    $this->matches = $this->me->getMatches();
    $this->pager = new sfDoctrinePager('Conversation', sfConfig::get('app_home_conversations_per_page'));
    $this->pager->setQuery($this->me->getConversationsQuery());
    $this->pager->setPage($request->getParameter('page', 1));
    $this->pager->init();

HYDRATE_ARRAYなしで私はこれを行うことができます

HYDRATE_ARRAYを使用すると、$ this-> contacts[0]['username']のようなことができるようになります。

助けてください

4

1 に答える 1

0

問題は教義です...

必要な値を配列としてフェッチし、制限を設定してみてください。

次のクエリによって返されるオブジェクトの数:

$this->cities = Doctrine_Core::getTable('City')->findByDql("zipcode=''");
$this->countries = Doctrine_Core::getTable('City')->findByDql("zipcode='10'");
$this->contacts = $this->me->getContacts();
$this->favorites = $this->me->getFavorites();
$this->matches = $this->me->getMatches();

?それらは他のオブジェクトへの参照を持つオブジェクトであることを忘れないでください!

そして、はい、これは機能し$this->contacts[0]['username'];ます。

doctrineクエリを使用してテーブルを結合すると、追加のクエリを実行しなくても、関連するエンティティにアクセスできます。

$this->contacts = Doctrine_Core::getTable('Contact')
        ->createQuery('c')
        ->leftJoin('c.Users u')
        ->addWhere('...')
        ->execute(array(), Doctrine_Core::HYDRATE_ARRAY);


$this->contacts[0]['Users'][0]['username']
于 2012-07-01T23:47:15.430 に答える