プロジェクト

全般

プロフィール

Bug(バグ) #3492

PickHomeLayoutForm クラスで返り値が void となるメソッドを返り値に指定している

Yuya Watanabe10年以上前に追加. 約7年前に更新.

ステータス:
Won't fix(対応せず)
優先度:
Normal(通常)
対象バージョン:
開始日:
2013-11-20
期日:
進捗率:

0%

3.6 で発生するか:
Unknown (未調査)
3.8 で発生するか:
Yes (はい)

説明

概要

PickHomeLayoutForm クラスで返り値が void となるメソッドを返り値に指定している

下記 73 行目では $snsConfig (SnsConfig クラス)の save() の返り値を用いているが,これは opDoctrineRecord クラスの save() となり,これは return を使ってないので void となる.

apps/pc_backend/modules/design/lib/PickHomeLayoutForm.class.php
 56 
 57   public function save()
 58   {
...
 64     $snsConfig = Doctrine::getTable('SnsConfig')->retrieveByName($this->layoutName);
 65     if (!$snsConfig)
 66     {
 67       $snsConfig = new SnsConfig();
 68       $snsConfig->setName($this->layoutName);
 69     }
 70     $value = $this->choices[$this->values['layout']];
 71     $snsConfig->setValue($value);
 72 
 73     return (bool)$snsConfig->save();
 74   }

lib/util/opDoctrineRecord.class.php
 56   public function save(Doctrine_Connection $conn = null)
 57   {
 58     if (is_null($conn))
 59     {
 60       $conn = opDoctrineQuery::chooseConnection(true);
 61     }
 62 
 63     parent::save($conn);
 64   }

関連するチケット

関連している OpenPNE 3 - Backport(バックポート) #3865: PickHomeLayoutForm クラスで返り値が void となるメソッドを返り値に指定している Fixed(完了) 2015-11-09
関連している OpenPNE 3 - Backport(バックポート) #3866: PickHomeLayoutForm クラスで返り値が void となるメソッドを返り値に指定している Fixed(完了) 2015-11-09

履歴

#1 Akihiro KOBAYASHI9年以上前に更新

  • ステータスNew(新規) から Accepted(着手) に変更
  • 担当者Akihiro KOBAYASHI にセット
  • 3.8 で発生するかUnknown (未調査) から Yes (はい) に変更

#2 Akihiro KOBAYASHI9年以上前に更新

  • ステータスAccepted(着手) から Pending Review(レビュー待ち) に変更
  • 進捗率0 から 50 に変更

プルリクエストしました
https://github.com/openpne/OpenPNE3/pull/197

apps/pc_backend/modules/design/lib/PickHomeLayoutForm.class.php内
$snsConfig->save();はvoidなのでreturn (bool)$snsConfig->save();を$snsConfig->save()に変更しました。

#3 Akihiro KOBAYASHI9年以上前に更新

  • 対象バージョンOpenPNE 3.9.0-old にセット

プルリクエスト先変更のため
https://github.com/openpne/OpenPNE3/pull/197 を一旦クローズ、
新たに https://github.com/openpne/OpenPNE3/pull/226 を追加

#4 kaoru nほぼ9年前に更新

  • 担当者 を削除 (Akihiro KOBAYASHI)

#5 isao sano8年以上前に更新

#6 isao sano8年以上前に更新

#7 Rimpei Ogawa8年以上前に更新

  • ステータスPending Review(レビュー待ち) から Rejected(差し戻し) に変更

返り値を void とするなら(修正前も void だったわけですが)、
PickHomeLayoutForm::save() の返り値を使用しようとしているコードも修正する必要があります。

以下の部分

# apps/pc_backend/modules/design/actions/actions.class.php

    $this->form = new PickHomeLayoutForm(array(), $option);

    if ($request->isMethod(sfRequest::POST))
    {
      $this->form->bind($request->getParameter('pick_home_layout'));
      $this->redirectIf($this->form->save(), 'design/layout?type='.$type);
    }

#8 Chiharu Nakajima8年以上前に更新

  • ステータスRejected(差し戻し) から Pending Review(レビュー待ち) に変更
  • 担当者Chiharu Nakajima にセット

プルリクエストしました。
https://github.com/openpne/OpenPNE3/pull/289

○修正内容について
save()が正常終了した場合にtrueを返すようにすることで、下記コードのredirectIfの結果、リダイレクトする用に修正(save()でfalseが戻り値となった場合は修正前と同じくリダイレクトしない)。

# apps/pc_backend/modules/design/actions/actions.class.php

    $this->form = new PickHomeLayoutForm(array(), $option);

    if ($request->isMethod(sfRequest::POST))
    {
      $this->form->bind($request->getParameter('pick_home_layout'));
      $this->redirectIf($this->form->save(), 'design/layout?type='.$type);
    }

#9 Rimpei Ogawa8年以上前に更新

  • ステータスPending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
  • 進捗率50 から 70 に変更

#11 kaoru n約7年前に更新

  • ステータスPending Testing(テスト待ち) から Won't fix(対応せず) に変更
  • 対象バージョンOpenPNE 3.9.0-old から OpenPNE 3.9.0 に変更
  • 進捗率70 から 0 に変更

OpenPNE 3.8.18 にて対応済みであったため、対応せずとします。

他の形式にエクスポート: Atom PDF