[TYPO3-mvc]  Repository with external database
    Henk Scholten 
    henk at wolfsstyle.nl
       
    Tue Oct  1 10:49:41 CEST 2013
    
    
  
Hello,
I'm pretty new to extbase ans was wondering if this is the right way to 
to call an external database in my repository and put the results in the 
model with extbase:
<?php
namespace Ws\FfPersons\Domain\Repository;
class PersonRepository extends \TYPO3\CMS\Extbase\Persistence\Repository {
	public function initializeObject() {
		$this->conf = 
unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['ff_persons']);
		$this->db = 
\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Database\\DatabaseConnection');
		try {
			$this->db->setDatabaseHost($this->conf['hostname']);
			$this->db->setDatabaseUsername($this->conf['username']);
			$this->db->setDatabasePassword($this->conf['password']);
			$this->db->sql_pconnect();
		} catch (\TYPO3\CMS\Fluid\Core\ViewHelper\Exception $exception) {
			throw new 
\TYPO3\CMS\Fluid\Core\ViewHelper\Exception($exception->getMessage());
		}
		try {
			$this->db->sql_select_db($this->conf['database']);
		} catch (\TYPO3\CMS\Fluid\Core\ViewHelper\Exception $exception) {
			throw new 
\TYPO3\CMS\Fluid\Core\ViewHelper\Exception($exception->getMessage());
		}
	}
	/**
	 * findAll
	 *
	 * @return
	 */
	public function findAll() {
		$select = array();
		$select['fields'] = '*';
		$select['table'] = 'persons';
		$select['where'] = '';
		$select['groupby'] = '';
		$select['orderby'] = 'surname';
		$res = $this->db->exec_SELECTquery($select['fields'], 
$select['table'], $select['where'], $select['groupby'], $select['orderby']);
		$persons = array();
		while ($rw = $this->db->sql_fetch_assoc($res)) {
			$personObj = new \Ws\FfPersons\Domain\Model\Person;
			$personObj->setFullname($rw['naam_volledig']);
			$personObj->setNickname($rw['roepnaam']);
			$persons[] = $rw;
		}
		return $persons;
	}
}
?>
I read something about an persistence layer but don't know how to use that.
All suggestions are welcome!
Regards,
Henk
    
    
More information about the TYPO3-project-typo3v4mvc
mailing list