本文整理汇总了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();
}
示例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;
}
}
示例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;
}
示例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 . '"'));
}
示例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);
}
}
示例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');
}
示例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;
}
示例8: getObjects
public function getObjects()
{
$objects = parent::getObjects();
if ($objects instanceof Doctrine_Record) {
$objects = new Doctrine_Collection($objects->getTable());
}
return $objects;
}
示例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;
}
示例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;
}
示例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;
}
示例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;
}
}
示例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;
}
示例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);
}
示例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);
}