当前位置: 首页>>代码示例>>PHP>>正文


PHP Doctrine_Collection类代码示例

本文整理汇总了PHP中Doctrine_Collection的典型用法代码示例。如果您正苦于以下问题:PHP Doctrine_Collection类的具体用法?PHP Doctrine_Collection怎么用?PHP Doctrine_Collection使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了Doctrine_Collection类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: indexDirectory

 public function indexDirectory($dir)
 {
     if (!file_exists($dir)) {
         throw new Doctrine_Search_Indexer_Exception('Unknown directory ' . $dir);
     }
     $it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir), RecursiveIteratorIterator::LEAVES_ONLY);
     $files = array();
     foreach ($it as $file) {
         $name = $file->getPathName();
         if (strpos($name, '.svn') === false) {
             $files[] = $name;
         }
     }
     $q = new Doctrine_Query();
     $q->delete()->from('Doctrine_File f')->where('f.url LIKE ?', array($dir . '%'))->execute();
     // clear the index
     $q = new Doctrine_Query();
     $q->delete()->from('Doctrine_File_Index i')->where('i.file_id = ?')->execute();
     $conn = Doctrine_Manager::connection();
     $coll = new Doctrine_Collection('Doctrine_File');
     foreach ($files as $file) {
         $coll[]->url = $file;
     }
     $coll->save();
 }
开发者ID:JimmyVB,项目名称:Symfony-v1.2,代码行数:25,代码来源:Indexer.php

示例2: reload

 public function reload($projets, $project_id, $project_ref, Doctrine_Connection $conn = null)
 {
     if ($conn == null) {
         $conn = Doctrine_Manager::connection();
     }
     //Création de la collection d'objet EiProjectLang à ajouter
     $collection = new Doctrine_Collection("EiProjectLang");
     $items = $projets->getElementsByTagName("ei_project_langs");
     if ($items->length > 0) {
         //ya t-il des éléments à traiter?
         $ei_project_langs = $items->item(0)->getElementsByTagName("ei_project_lang");
         if ($ei_project_langs->length > 0) {
             foreach ($ei_project_langs as $ei_project_lang) {
                 $lang_id = $ei_project_lang->getAttribute("lang");
                 //recherche du profil en base
                 if ($lang_id != null && $project_ref != null && $project_id != null) {
                     $new_ei_project_lang = new EiProjectLang();
                     $new_ei_project_lang->setLang($lang_id);
                     $new_ei_project_lang->setProjectId($project_id);
                     $new_ei_project_lang->setProjectRef($project_ref);
                     $collection->add($new_ei_project_lang);
                 }
             }
             if ($collection->getFirst()) {
                 $collection->save($conn);
             }
             //Sauvegarde de la collection
             return 1;
         }
         return null;
     }
 }
开发者ID:lendji4000,项目名称:compose,代码行数:32,代码来源:EiProjectLangTable.class.php

示例3: getSummary

 /**
  * Returns the SLA Summary (@see IcingaSLASummary) for this filter
  *
  * @param Doctrine_Connection $dbConnection
  * @param type $filter
  * @return Doctrine_Collection
  */
 public static function getSummary(Doctrine_Connection $dbConnection = null, $filter = null)
 {
     if ($dbConnection == null) {
         $dbConnection = AgaviContext::getInstance()->getDatabaseConnection("icinga");
     }
     $driver = $dbConnection->getDriverName();
     $stmt = null;
     switch (strtolower($driver)) {
         case 'pgsql':
             $stmt = self::getPgsqlSummaryQuery($dbConnection, $filter);
             break;
         case 'oracle':
         case 'icingaoracle':
             $stmt = self::getOracleSummaryQuery($dbConnection, $filter);
             break;
         case 'mysql':
             $stmt = self::getMySQLSummaryQuery($dbConnection, $filter);
             break;
         default:
             throw new AppKitDoctrineException("Invalid driver " . $driver);
     }
     $stmt->execute();
     $result = new Doctrine_Collection("IcingaSLASummary");
     while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
         $record = new IcingaSLASummary();
         foreach ($row as $key => $value) {
             $record->{strtolower($key)} = $value;
         }
         $result->add($record);
     }
     return $result;
 }
开发者ID:philippjenni,项目名称:icinga-web,代码行数:39,代码来源:IcingaSlahistoryTable.php

示例4: executeImportSentences

 public function executeImportSentences(dmWebRequest $request)
 {
     $catalogue = $this->getObjectOrForward404($request);
     $form = new DmCatalogueImportForm();
     sfContext::getInstance()->getConfiguration()->loadHelpers(array('Url'));
     if ($request->isMethod('post') && $form->bindAndValid($request)) {
         $file = $form->getValue('file');
         $override = $form->getValue('override');
         $dataFile = $file->getTempName();
         $table = dmDb::table('DmTransUnit');
         $existQuery = $table->createQuery('t')->select('t.id, t.source, t.target, t.created_at, t.updated_at')->where('t.dm_catalogue_id = ? AND t.source = ?');
         $catalogueId = $catalogue->get('id');
         $nbAdded = 0;
         $nbUpdated = 0;
         try {
             if (!is_array($data = sfYaml::load(file_get_contents($dataFile)))) {
                 $this->getUser()->logError($this->getI18n()->__('Could not load file: %file%', array('%file%' => $file->getOriginalName())));
                 return $this->renderPartial('dmInterface/flash');
             }
         } catch (Exception $e) {
             $this->getUser()->logError($this->getI18n()->__('Unable to parse file: %file%', array('%file%' => $file->getOriginalName())));
             return $this->renderPartial('dmInterface/flash');
         }
         $addedTranslations = new Doctrine_Collection($table);
         $line = 0;
         foreach ($data as $source => $target) {
             ++$line;
             if (!is_string($source) || !is_string($target)) {
                 $this->getUser()->logError($this->getI18n()->__('Error line %line%: %file%', array('%line%' => $line, '%file%' => $file->getOriginalName())));
                 return $this->renderPartial('dmInterface/flash');
             } else {
                 $existing = $existQuery->fetchOneArray(array($catalogueId, $source));
                 if (!empty($existing) && $existing['source'] === $source) {
                     if ($existing['target'] !== $target) {
                         if ($override || $existing['created_at'] === $existing['updated_at']) {
                             $table->createQuery()->update('DmTransUnit')->set('target', '?', array($target))->where('id = ?', $existing['id'])->execute();
                             ++$nbUpdated;
                         }
                     }
                 } elseif (empty($existing)) {
                     $addedTranslations->add(dmDb::create('DmTransUnit', array('dm_catalogue_id' => $catalogue->get('id'), 'source' => $source, 'target' => $target)));
                     ++$nbAdded;
                 }
             }
         }
         $addedTranslations->save();
         if ($nbAdded) {
             $this->getUser()->logInfo($this->getI18n()->__('%catalogue%: added %count% translation(s)', array('%catalogue%' => $catalogue->get('name'), '%count%' => $nbAdded)));
         }
         if ($nbUpdated) {
             $this->getUser()->logInfo($this->getI18n()->__('%catalogue%: updated %count% translation(s)', array('%catalogue%' => $catalogue->get('name'), '%count%' => $nbUpdated)));
         }
         if (!$nbAdded && !$nbUpdated) {
             $this->getUser()->logInfo($this->getI18n()->__('%catalogue%: nothing to add and update', array('%catalogue%' => $catalogue->get('name'))));
         }
         return $this->renderText(url_for1($this->getRouteArrayForAction('index')));
     }
     $action = url_for1($this->getRouteArrayForAction('importSentences', $catalogue));
     return $this->renderText($form->render('.dm_form.list.little action="' . $action . '"'));
 }
开发者ID:theolymp,项目名称:diem,代码行数:60,代码来源:actions.class.php

示例5: execute

 /**
  *
  * @param <type> $request
  */
 public function execute($request)
 {
     $this->setForm(new CopyActivityForm());
     $projectId = $request->getParameter('projectId');
     $this->form->bind($request->getParameter($this->form->getName()));
     $projectActivityList = $this->getProjectService()->getActivityListByProjectId($projectId);
     if ($this->form->isValid()) {
         $activityNameList = $request->getParameter('activityNames', array());
         $activities = new Doctrine_Collection('ProjectActivity');
         $isUnique = true;
         foreach ($activityNameList as $activityName) {
             foreach ($projectActivityList as $projectActivity) {
                 if (strtolower($activityName) == strtolower($projectActivity->getName())) {
                     $isUnique = false;
                     break;
                 }
             }
         }
         if ($isUnique) {
             foreach ($activityNameList as $activityName) {
                 $activity = new ProjectActivity();
                 $activity->setProjectId($projectId);
                 $activity->setName($activityName);
                 $activity->setIsDeleted(ProjectActivity::ACTIVE_PROJECT);
                 $activities->add($activity);
             }
             $activities->save();
             $this->getUser()->setFlash('templateMessageAct', array('success', __('Successfully Copied')));
         } else {
             $this->getUser()->setFlash('templateMessageAct', array('failure', __('Name Already Exists')));
         }
         $this->redirect('admin/saveProject?projectId=' . $projectId);
     }
 }
开发者ID:THM068,项目名称:orangehrm,代码行数:38,代码来源:copyActivityAction.class.php

示例6: testInsertMultiple

 public function testInsertMultiple()
 {
     $count = count($this->dbh);
     $listener = new Transaction_TestLogger();
     $users = new Doctrine_Collection('User');
     $users->getTable()->getConnection()->setListener($listener);
     $this->connection->beginTransaction();
     $users[0]->name = 'Arnold';
     $users[1]->name = 'Vincent';
     $users[0]->save();
     $users[1]->save();
     $this->assertEqual($listener->pop(), 'onSave');
     $this->assertEqual($listener->pop(), 'onInsert');
     $this->assertEqual($listener->pop(), 'onPreInsert');
     $this->assertEqual($listener->pop(), 'onPreSave');
     $this->assertEqual($listener->pop(), 'onSave');
     $this->assertEqual($listener->pop(), 'onInsert');
     $this->assertEqual($listener->pop(), 'onPreInsert');
     $this->assertEqual($listener->pop(), 'onPreSave');
     $this->assertEqual($users[0]->id, 2);
     $this->assertEqual($users[1]->id, 3);
     $this->assertTrue($count < count($this->dbh));
     $this->connection->commit();
     $this->assertEqual($listener->pop(), 'onTransactionCommit');
     $this->assertEqual($listener->pop(), 'onPreTransactionCommit');
 }
开发者ID:dracony,项目名称:forked-php-orm-benchmark,代码行数:26,代码来源:ConnectionTransactionTestCase.php

示例7: getNodes

 protected function getNodes($recreate = false)
 {
     if ($recreate || !self::$nodes) {
         $coll = new Doctrine_Collection('Structure', 'id');
         self::$nodes = $coll->merge($this->getMenuItemFetchingQuery()->execute());
     }
     return self::$nodes;
 }
开发者ID:vcgato29,项目名称:poff,代码行数:8,代码来源:components.class.php

示例8: getObjects

 public function getObjects()
 {
     $objects = parent::getObjects();
     if ($objects instanceof Doctrine_Record) {
         $objects = new Doctrine_Collection($objects->getTable());
     }
     return $objects;
 }
开发者ID:broschb,项目名称:cyclebrain,代码行数:8,代码来源:sfDoctrineRoute.class.php

示例9: fetchOffsetsByToken

 /**
  *
  * @param PetitionApiToken $api_token
  * @return \Doctrine_Collection
  */
 public function fetchOffsetsByToken(PetitionApiToken $api_token)
 {
     $coll = new Doctrine_Collection('ApiTokenOffset', 'country');
     foreach ($this->createQuery('o')->where('o.petition_api_token_id = ?', $api_token->getId())->execute() as $offset) {
         $coll->add($offset);
     }
     return $coll;
 }
开发者ID:uniteddiversity,项目名称:policat,代码行数:13,代码来源:ApiTokenOffsetTable.class.php

示例10: _buildObjects

 /**
  * Remaps a doctrine collection so that the keys of the colleciton "array"
  * are the ids of the underlying objects. This makes the collection
  * easier to deal with then replacing objects
  * 
  * @return Doctrine_Collection
  */
 protected static function _buildObjects(Doctrine_Collection $collection)
 {
     $objects = new Doctrine_Collection($collection->getTable());
     foreach ($collection as $key => $value) {
         $objects[$value->slug] = $value;
     }
     return $objects;
 }
开发者ID:slemoigne,项目名称:sympal,代码行数:15,代码来源:sfSympalContentSyntaxReplacer.class.php

示例11: createCollection

 /**
  *
  * @param string $model_name
  * @param array  $data   
  * @return Doctrine_Collection 
  */
 public static function createCollection($model_name, $data)
 {
     $collection = new Doctrine_Collection($model_name);
     if (!$collection instanceof Doctrine_Collection) {
         throw new sfException('Trying to hydrate a non-Doctrine_collection object!');
     }
     $collection->fromArray($data);
     return $collection;
 }
开发者ID:nocoolnametom,项目名称:OpenMicNight,代码行数:15,代码来源:ApiDoctrine.class.php

示例12: reload

 public function reload($projets, $project_id, $project_ref, Doctrine_Connection $conn = null)
 {
     if ($conn == null) {
         $conn = Doctrine_Manager::connection();
     }
     //Création de la collection d'objet EiVersionNotice à ajouter
     $collection = new Doctrine_Collection("EiVersionNotice");
     //Supression des versions de notice qui n'existent plus sur script
     $this->deleteNotFoundVersionNotice($conn);
     $items = $projets->getElementsByTagName("ei_version_notices");
     if ($items->length > 0) {
         //ya t-il des éléments à traiter?
         $ei_version_notices = $items->item(0)->getElementsByTagName("ei_version_notice");
         if ($ei_version_notices->length > 0) {
             foreach ($ei_version_notices as $ei_version_notice) {
                 $notice_id = $ei_version_notice->getAttribute("notice_id");
                 $notice_ref = $ei_version_notice->getAttribute("notice_ref");
                 $version_notice_id = $ei_version_notice->getAttribute("version_notice_id");
                 $lang = $ei_version_notice->getAttribute("lang");
                 //recherche du profil en base
                 if ($notice_id != null && $notice_ref != null && $version_notice_id != null && $lang != null) {
                     $q = Doctrine_Core::getTable('EiVersionNotice')->findOneByNoticeIdAndNoticeRefAndVersionNoticeIdAndLang($notice_id, $notice_ref, $version_notice_id, $lang);
                     if ($q && $q != null) {
                         //si l'element existe , on fait une mise à jour
                         $q->setName($ei_version_notice->getElementsByTagName("name")->item(0)->nodeValue);
                         $q->setDescription($ei_version_notice->getElementsByTagName("description")->item(0)->nodeValue);
                         $q->setExpected($ei_version_notice->getElementsByTagName("expected")->item(0)->nodeValue);
                         $q->setResult($ei_version_notice->getElementsByTagName("result")->item(0)->nodeValue);
                         $q->setIsActive($ei_version_notice->getElementsByTagName("is_active")->item(0)->nodeValue);
                         $q->save($conn);
                     } else {
                         //l'élément n'existe pas encore, et dans ce cas on le crée
                         $new_ei_version_notice = new EiVersionNotice();
                         $new_ei_version_notice->setNoticeId($notice_id);
                         $new_ei_version_notice->setNoticeRef($notice_ref);
                         $new_ei_version_notice->setVersionNoticeId($version_notice_id);
                         $new_ei_version_notice->setLang($lang);
                         $new_ei_version_notice->setDescription($ei_version_notice->getElementsByTagName("description")->item(0)->nodeValue);
                         $new_ei_version_notice->setExpected($ei_version_notice->getElementsByTagName("expected")->item(0)->nodeValue);
                         $new_ei_version_notice->setResult($ei_version_notice->getElementsByTagName("result")->item(0)->nodeValue);
                         $new_ei_version_notice->setName($ei_version_notice->getElementsByTagName("name")->item(0)->nodeValue);
                         $new_ei_version_notice->setIsActive($ei_version_notice->getElementsByTagName("is_active")->item(0)->nodeValue);
                         $collection->add($new_ei_version_notice);
                     }
                 }
             }
             if ($collection->getFirst()) {
                 $collection->save($conn);
             }
             //Sauvegarde de la collection
             return 1;
         }
         return null;
     }
 }
开发者ID:lendji4000,项目名称:compose,代码行数:55,代码来源:EiVersionNoticeTable.class.php

示例13: addWikiPages2Categories

 /**
  * Add a group of wiki pages selected to a category
  * @param integer $category_id
  * @param array $wikiIDS
  * @param integer $locale
  */
 public static function addWikiPages2Categories($category_id, $wikiIDS)
 {
     $records = new Doctrine_Collection('Wikilinks');
     self::removeWikiCategoriesPages($category_id);
     for ($i = 0; $i < count($wikiIDS); $i++) {
         $records[$i]->category_id = $category_id;
         $records[$i]->wiki_id = $wikiIDS[$i];
     }
     $records->save();
     return true;
 }
开发者ID:kokkez,项目名称:shineisp,代码行数:17,代码来源:Wikilinks.php

示例14: testInit

 public function testInit()
 {
     $user = new BookmarkUser();
     $user['name'] = 'Anonymous';
     $user->save();
     $pages = new Doctrine_Collection('Page');
     $pages[0]['name'] = 'Yahoo';
     $pages[0]['url'] = 'http://www.yahoo.com';
     $pages->save();
     $this->assertEqual(count($pages), 1);
 }
开发者ID:swk,项目名称:bluebox,代码行数:11,代码来源:587TestCase.php

示例15: _saveEmployeeWorkShift

 private function _saveEmployeeWorkShift($workShiftId, $empArray)
 {
     $empWorkShiftCollection = new Doctrine_Collection('EmployeeWorkShift');
     for ($i = 0; $i < sizeof($empArray); $i++) {
         $empWorkShift = new EmployeeWorkShift();
         $empWorkShift->setWorkShiftId($workShiftId);
         $empWorkShift->setEmpNumber($empArray[$i]);
         $empWorkShiftCollection->add($empWorkShift);
     }
     $this->getWorkShiftService()->saveEmployeeWorkShiftCollection($empWorkShiftCollection);
 }
开发者ID:THM068,项目名称:orangehrm,代码行数:11,代码来源:WorkShiftForm.php


注:本文中的Doctrine_Collection类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。