Yii 1.1.14 RC

PHPリリース候補版Yii 1.1.14がリリースされました。 GitHub取得できます



80以上のバグが修正され、60以上の小さな改善と新しい機能が追加されました。 新しいクラスが登場しました。

CPasswordHelper



。パスワードハッシュを保存および検証するための信頼できる方法を提供します。 また、 CRedisCache



追加しCRedisCache





Redisを使用してキャッシュを保存できます。 Yiiは次のようにインストールできます

Composerパッケージ 。 変更の完全なリストが提供されます。

changelogで



変更の大部分はコミュニティメンバーによって行われました: creocoder 、tom-、paystey、Ragazzo、antoncpu、Yiivgenyなど

彼らに感謝します。



これはリリース(RC)の候補であるため、バトルサーバーでは使用しないでください。 安定版リリース1.1.14は、

数週間ですが、今のところ、 RCチェックし、

エラーについてお知らせください 。 事前に感謝します。



それでは、主な改善点を検討してください。







新しいCPasswordHelper



クラス





CPasswordHelper



は、パスワードハッシュを保存および検証するための信頼できる方法を提供します。 使い方はとても簡単です。



 //  ,      . $password     $hash = CPasswordHelper::hashPassword($password); // $hash —  ,     , $password     if (CPasswordHelper::verifyPassword($password, $hash) //   else //  
      
      







新しいCDbCommandBuilder::createMultipleInsertCommand()



メソッド





CDbCommandBuilder::createMultipleInsertCommand()



を使用して、1つのリクエストに複数のレコードを挿入できるようになりました。



 $builder=Yii::app()->db->schema->commandBuilder; $command=$builder->createMultipleInsertCommand('tbl_post', array( array('title' => 'record 1', 'text' => 'text1'), array('title' => 'record 2', 'text' => 'text2'), )); $command->execute();
      
      







CRedisCache







これで、キャッシュをRedisに保存するようにアプリケーションを構成できます。 それは `protected / config / main.php`で行われます:



 array( // ... 'components'=>array( 'cache'=>array( 'class'=>'CRedisCache', 'hostname'=>'localhost', 'port'=>6379, 'database'=>0, ), ), )
      
      







Composerパッケージとして Yiiのインストール:





YiiはComposerからインストールできるようになりました。 これを行うには、追加

composer.json



フォローします。



 "yiisoft/yii": "dev-master"
      
      







一定時間後の自動ユーザー終了





ユーザーがアクティビティに関係なく、厳密に定義された時間後にログアウトする必要がある場合は、実行します

それは可能です:



  // ... 'components'=>array( 'user'=>array( // ... 'absoluteAuthTimeout' => 60*60*24; ), ), )
      
      







RANGEファイルアップロードのサポート





CHttpRequest::sendFile



を使用するときCHttpRequest::sendFile



YiiはRANGEリクエスト、つまりエンドユーザーに正しく応答するようになりました

複数のストリームでダウンロードするときの速度が向上します。



BELONGS_TO



through



を使用through







throughオプションをCActiveRecord::BELONGS_TO



使用できるようになりCActiveRecord::BELONGS_TO



。 これについての詳細

完全なガイドに書かれています



グローバル変数の選択的ロギング





CLogFilter::$logVars



は、 $GLOBALS



から何を正確に記録するかを指定できる配列の配列を受け入れるようになりました。



  'components'=>array( 'log'=>array( 'class'=>'CLogRouter', 'routes'=>array( array( 'class'=>'system.logging.CWebLogRoute', 'filter'=>array( 'class'=>'system.logging.CLogFilter', 'logVars'=>array( '_COOKIE', //  , < 1.1.14 array('_SERVER','REMOTE_ADDR'), //  , >= 1.1.14 array('_SERVER','HTTP_USER_AGENT'), //  , >= 1.1.14 ), ), ), ), ), ),
      
      







上記の構成では、ログに以下が記録されます。



 $_COOKIE=array ( '__utma' => '111872281.473431406.1366046648.1366046648.1366046648.1', '__utmz' => '111872281.1366046648.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)', 'cartVisible' => '1', '96ab4aec0c2977c9b793d4ba009eb3ce' => '...', 'PHPSESSID' => 'vb8pk7obs3q2lc7bl8ield7si7', ) $_SERVER.REMOTE_ADDR='::1' $_SERVER.HTTP_USER_AGENT='Mozilla/5.0 (Windows NT 6.1; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0'
      
      







新しいCLocalizedFormatter







新しいCLocalizedFormatter



クラスを使用CLocalizedFormatter



と、現在のロケールに従って値をフォーマットできます。



 'components'=>array( 'format'=>array( 'class'=>'system.utils.CLocalizedFormatter', 'locale'=>'en_US', ), 'germanFormat'=>array( 'class'=>'system.utils.CLocalizedFormatter', 'locale'=>'de_DE', ), 'russianFormat'=>array( 'class'=>'system.utils.CLocalizedFormatter', 'locale'=>'ru_RU', ), ),
      
      







 echo Yii::app()->format->formatDatetime(time()) . "\n"; echo Yii::app()->germanFormat->formatDatetime(time()) . "\n"; echo Yii::app()->russianFormat->formatDatetime(time()) . "\n"; // Jul 7, 2013 9:34:56 PM // 07.07.2013 21:34:56 // 07.07.2013, 21:34:56
      
      







データベースのコメントからフィールド名を生成する





Giiは、生成されたモデルのフィールド名としてテーブルフィールドのコメントを使用できるようになりました。 例えば

テーブルが次のように作成された場合:



 CREATE TABLE `tbl_user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `first_name` varchar(100) NOT NULL COMMENT ':', `last_name` varchar(100) NOT NULL COMMENT 'Nachname:', `title` varchar(50) NOT NULL COMMENT 'Title (eg Mr., Mrs., etc.):', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1;
      
      







生成されるattributeLabels



メソッドは次のようになります(Giiで「属性コメントとして列コメントを使用」を選択した場合):



 /** * @return array customized attribute labels (name=>label) */ public function attributeLabels() { return array( 'id' => 'ID', 'first_name' => ':', 'last_name' => 'Nachname:', 'title' => 'Title (eg Mr., Mrs., etc.):', ); }
      
      







CSecurityManager



新しいメソッド





CSecurityManager



追加:



* CSecurityManager::generateSessionRandomBlock()



:現在のセッションに基づいてランダムなバイトシーケンスを生成します

ユーザー。

* CSecurityManager::generatePseudoRandomBlock()



mt_rand()



改良された代替。

* CSecurityManager::generateRandomBytes()



:ランダムなバイナリデータを生成します。 暗号の安定性は2番目に設定されます

引数。 世代がかなり遅いことは注目に値します。

* CSecurityManager::generateRandomString()



:ランダムな文字列を生成します。 暗号強度は、2番目の引数で指定されます。

世代がかなり遅いことは注目に値します。



All Articles