PHPixie 3.0 ORMまたは新しいActiveRecordビュー

画像 PHPixie ORMコンポーネントの長い間期待されていた3番目のバージョンはすでに完成しています。 現在は、フレームワークから完全に独立しており、単独で安全に使用できます。 この点で、他のコンポーネントの作業は進行中であり、ドキュメントが作成されていますが、開発者は小さなチュートリアルをコンパイルして、ORMでの作業を開始できるようにしました。 以下に翻訳を提供し、私自身からいくつかのことを追加しますが、最初に、このバージョンがどれほど便利かを見てみましょう。







興味を持っていただければ幸いです。今度は翻訳の上記リンクから例を見てみましょう。





<?php require_once('vendor/autoload.php'); $config = new \PHPixie\Config(); //    $database = new \PHPixie\Database($config->dataStorage(array( 'default' => array( 'driver' => 'pdo', 'connection' => 'sqlite::memory:' ) ))); //   $orm = new \PHPixie\ORM($database, $config->dataStorage(array( 'relationships' => array( array( //      'type' => 'oneToMany', 'owner' => 'fairy', 'items' => 'flower' ) ) ))); //  $connection = $database->get('default'); $connection->execute(' CREATE TABLE fairies ( id INTEGER PRIMARY KEY, name VARCHAR(255) ) '); $connection->execute(' CREATE TABLE flowers ( id INTEGER PRIMARY KEY, name VARCHAR(255), fairy_id INTEGER ) '); //    //  Repositories, Entities  Query /*        : $fairy->name = 'Trixie'; $fairy->save(); $fairy->where('name', 'Stella')->find(); */ //      $fairyRepository = $orm->get('fairy'); $flowerRepository = $orm->get('flower'); //    //   //   $trixie = $fairyRepository->create(); $trixie->name = 'Trixie'; $trixie->save(); //  $fairyRepository ->create(array('name' => 'Stella')) ->save(); //     foreach(array('Red', 'Yellow', 'Green', 'Purple') as $name) { $flowerRepository ->create(array('name' => $name)) ->save(); } //   Query // WHERE `id` > 1 AND ( `name` = 'Green' OR `name` = 'Red') $green = $flowerRepository->query() ->where('id', '>', 1) ->startAndWhereGroup() ->where('name', 'Green') ->or('name', 'Red') ->endGroup() ->findOne(); //  $green = $flowerRepository->query() ->where('id', '>', 1) ->and(function($q){ $q ->where('name', 'Green') ->or('name', 'Red') }) ->findOne(); // //        //    'flowers'   add(), remove()  removeAll() //     addFlower(), removeFlower()  removeAllFlowers()    $trixie->flowers->add($green); //  ,       //      //        ,      // oneToMany  .   manyToMany     assert($green->fairy() == $trixie); //      Green c  Stella //     //      $stellaQuery = $fairyRepository->query() ->where('name', 'Stella'); //     $allExceptGreen = $flowerRepository->query() ->whereNot('name', 'Green'); //   $stellaQuery->flowers->add($allExceptGreen); // Query      //   Purple  Blue $flowerRepository->query() ->where('name', 'Purple') ->update(array( 'name' => 'Blue' )); //       : $trixie = $fairyRepository->query() ->relatedTo('flowers', $green) ->findOne(); //            //      $fairies = $fairyRepository->query() ->relatedTo('flowers') ->find(array('flowers')); //    //      //  json_encode() print_r($fairies->asArray(true)); //   =)
      
      







自分でこの例を試すのは非常に簡単です:



 git clone https://github.com/phpixie/orm cd orm/examples #      curl -sS https://getcomposer.org/installer | php php composer.phar install php quickstart.php
      
      







このORMは1年以上にわたって開発されたものであり、お客様のご質問やコメントに非常に興味を持っています。コメントをお待ちしております。



All Articles