Atualizando a versão 1.0 para 1.1

1. Mudanças Relacionadas a Cenários de Modelos

  • Removido o método CModel::safeAttributes(). Atributos seguros agora são definidos por aqueles que estão sendo validados por alguma regra conforme definidas em CModel::rules() para o cenário em particular.

  • Alterados os métodos CModel::validate(), CModel::beforeValidate() e CModel::afterValidate(). CModel::setAttributes(), CModel::getSafeAttributeNames(). O parâmetro 'scenario' foi removido. Você deve obter e setar o cenário do modelo através de CModel::scenario.

  • Alterado o CModel::getValidators() e removido CModel::getValidatorsForAttribute(). CModel::getValidators() agora só retorna os validadores que se aplicam ao cenário conforme especificado na propriedade scenario do modelo.

  • Alterados o CModel::isAttributeRequired() e CModel::getValidatorsForAttribute(). O parâmetro scenario foi removido. Ao invés disso, será usada a propriedade scenario do modelo.

  • Removido o CHtml::scenario. CHtml usará o cenário do modelo ao invés disso.

2. Mudanças Relacionadas a Eager Loading para Active Record Relacional

  • Por padrão uma única declaração JOIN será gerada e executada para todos os relacionamentos envolvidos no eager loading. Se a tabela principal tiver as suas opções LIMIT ou OFFSET definidas, ela será consultada sozinha primeiro, seguida por outra declaração SQL que retorna todos os objetos relacionados. Antes disso na versão 1.0.x, o comportamento padrão é que haveriam N+1 declarações SQL se um eager loading envolvesse N relacionamentos HAS_MANY ou MANY_MANY.

3. Mudanças Relacionadas a Alias de Tabelas no Active Record Relacional

  • O alias padrão para uma tabela relacional agora é o mesmo que o nome da relação. Anteriormente, na versão 1.0.x, o Yii por padrão automaticamente geraria um alias de tabela para cada tabela relacional, e tínhamos de usar o prefixo ??. para nos referir a este alias gerado automaticamente.

  • O nome do alias para a tabela principal em uma query do AR foi fixado como sendo t. Anteriormente, na versão 1.0.x, era o mesmo que o nome da tabela. Isso fará co mque o código de queries de AR existentes deixem de funcionar se eles explicitamente especificam prefixos de coluna usando o nome da tabela. A solução é substituir esses prefixos com 't.'.

4. Mudanças Relacionadas a Entrada Tabular

  • Não é mais válido usar Field[$i] para nomes de atributos, eles deveriam ser como [$i]Field de modo a suportar campos do tipo array (por exemplo, [$i]Field[$index]).

5. Outras Mudanças

  • A assinatura do construtor da CActiveRecord mudou. O primeiro parâmetro (a lista de atributos) foi removido.
$Id$

Be the first person to leave a comment

Please to leave your comment.