function index()
 {
     spl_autoload_register(array('Doctrine', 'autoload'));
     $manager = Doctrine_Manager::getInstance();
     $conn = Doctrine_Manager::connection('mysql://*****:*****@localhost/moqold', 'doctrine');
     Doctrine::generateModelsFromDb('system/application/models', array('moqold'), array('generateTableClasses' => true));
     echo Doctrine::getPath();
 }
 public function tables()
 {
     $path = Doctrine::getPath();
     $conn = Doctrine_Manager::connection();
     $result = $conn->execute('SHOW TABLES;')->fetchAll();
     $tables_found = null;
     foreach ($result as $table) {
         $tables_found .= $table[0] . "<br />";
     }
     $disp = "doctrine loaded from: {$path}";
     $disp .= "<hr />parsing tables... tables found: ";
     $disp .= "<blockquote>{$tables_found}</blockquote>";
     echo $disp;
 }
Example #3
0
 /**
  * method for making a single file of most used doctrine runtime components
  * including the compiled file instead of multiple files (in worst
  * cases dozens of files) can improve performance by an order of magnitude
  *
  * @throws Doctrine_Compiler_Exception      if something went wrong during the compile operation
  * @return void
  */
 public static function compile($target = null)
 {
     $path = Doctrine::getPath();
     $it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path), RecursiveIteratorIterator::LEAVES_ONLY);
     foreach ($it as $file) {
         $e = explode('.', $file->getFileName());
         // we don't want to require versioning files
         if (end($e) === 'php' && strpos($file->getFileName(), '.inc') === false) {
             require_once $file->getPathName();
         }
     }
     $classes = array_merge(get_declared_classes(), get_declared_interfaces());
     $ret = array();
     foreach ($classes as $class) {
         $e = explode('_', $class);
         if ($e[0] !== 'Doctrine') {
             continue;
         }
         $refl = new ReflectionClass($class);
         $file = $refl->getFileName();
         print 'Adding ' . $file . PHP_EOL;
         $lines = file($file);
         $start = $refl->getStartLine() - 1;
         $end = $refl->getEndLine();
         $ret = array_merge($ret, array_slice($lines, $start, $end - $start));
     }
     if ($target == null) {
         $target = $path . DIRECTORY_SEPARATOR . 'Doctrine.compiled.php';
     }
     // first write the 'compiled' data to a text file, so
     // that we can use php_strip_whitespace (which only works on files)
     $fp = @fopen($target, 'w');
     if ($fp === false) {
         throw new Doctrine_Compiler_Exception("Couldn't write compiled data. Failed to open {$target}");
     }
     fwrite($fp, "<?php " . implode('', $ret));
     fclose($fp);
     $stripped = php_strip_whitespace($target);
     $fp = @fopen($target, 'w');
     if ($fp === false) {
         throw new Doctrine_Compiler_Exception("Couldn't write compiled data. Failed to open {$file}");
     }
     fwrite($fp, $stripped);
     fclose($fp);
 }
Example #4
0
 /**
  * getValidators
  *
  * Get available doctrine validators
  *
  * @return array $validators
  */
 public static function getValidators()
 {
     $validators = array();
     $dir = Doctrine::getPath() . DIRECTORY_SEPARATOR . 'Doctrine' . DIRECTORY_SEPARATOR . 'Validator';
     $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir), RecursiveIteratorIterator::LEAVES_ONLY);
     foreach ($files as $file) {
         $e = explode('.', $file->getFileName());
         if (end($e) == 'php') {
             $name = strtolower($e[0]);
             $validators[$name] = $name;
         }
     }
     return $validators;
 }
Example #5
0
 /**
  * loadTasks
  *
  * @param string $directory 
  * @return array $loadedTasks
  */
 public function loadTasks($directory = null)
 {
     if ($directory === null) {
         $directory = Doctrine::getPath() . DIRECTORY_SEPARATOR . 'Doctrine' . DIRECTORY_SEPARATOR . 'Task';
     }
     $parent = new ReflectionClass('Doctrine_Task');
     $tasks = array();
     foreach ((array) $directory as $dir) {
         $it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir), RecursiveIteratorIterator::LEAVES_ONLY);
         foreach ($it as $file) {
             $e = explode('.', $file->getFileName());
             if (end($e) === 'php' && strpos($file->getFileName(), '.inc') === false) {
                 $className = 'Doctrine_Task_' . $e[0];
                 if (!class_exists($className)) {
                     require_once $file->getPathName();
                     $class = new ReflectionClass($className);
                     if ($class->isSubClassOf($parent)) {
                         $tasks[$e[0]] = $e[0];
                     }
                 }
             }
         }
     }
     $this->_tasks = array_merge($this->_tasks, $tasks);
     return $this->_tasks;
 }
Example #6
0
 /**
  *
  * Return the name of a class from its filename.
  *
  * This method simply removes the Doctrine Path and raplces _ with / and 
  * removes .php to get the classname for a file
  *
  * @param string $fileName The name of the file
  * @return string The name of the class
  */
 public function getClassNameFromFileName($fileName)
 {
     $path = Doctrine::getPath() . DIRECTORY_SEPARATOR;
     $class = str_replace($path, "", $fileName);
     $class = str_replace(DIRECTORY_SEPARATOR, "_", $class);
     $class = substr($class, 0, -4);
     return $class;
 }
Example #7
0
 /**
  * method for making a single file of most used doctrine runtime components
  * including the compiled file instead of multiple files (in worst
  * cases dozens of files) can improve performance by an order of magnitude
  *
  * @throws Doctrine_Compiler_Exception      if something went wrong during the compile operation
  * @return $target Path the compiled file was written to
  */
 public static function compile($target = null, $includedDrivers = array())
 {
     if (!is_array($includedDrivers)) {
         $includedDrivers = array($includedDrivers);
     }
     $excludedDrivers = array();
     // If we have an array of specified drivers then lets determine which drivers we should exclude
     if (!empty($includedDrivers)) {
         $drivers = array('db2', 'mssql', 'mysql', 'oracle', 'pgsql', 'sqlite');
         $excludedDrivers = array_diff($drivers, $includedDrivers);
     }
     $path = Doctrine::getPath();
     $it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path), RecursiveIteratorIterator::LEAVES_ONLY);
     foreach ($it as $file) {
         $e = explode('.', $file->getFileName());
         //@todo what is a versioning file? do we have these anymore? None
         //exists in my version of doctrine from svn.
         // we don't want to require versioning files
         if (end($e) === 'php' && strpos($file->getFileName(), '.inc') === false) {
             require_once $file->getPathName();
         }
     }
     $classes = array_merge(get_declared_classes(), get_declared_interfaces());
     $ret = array();
     foreach ($classes as $class) {
         $e = explode('_', $class);
         if ($e[0] !== 'Doctrine') {
             continue;
         }
         // Exclude drivers
         if (!empty($excludedDrivers)) {
             foreach ($excludedDrivers as $excludedDriver) {
                 $excludedDriver = ucfirst($excludedDriver);
                 if (in_array($excludedDriver, $e)) {
                     continue 2;
                 }
             }
         }
         $refl = new ReflectionClass($class);
         $file = $refl->getFileName();
         $lines = file($file);
         $start = $refl->getStartLine() - 1;
         $end = $refl->getEndLine();
         $ret = array_merge($ret, array_slice($lines, $start, $end - $start));
     }
     if ($target == null) {
         $target = $path . DIRECTORY_SEPARATOR . 'Doctrine.compiled.php';
     }
     // first write the 'compiled' data to a text file, so
     // that we can use php_strip_whitespace (which only works on files)
     $fp = @fopen($target, 'w');
     if ($fp === false) {
         throw new Doctrine_Compiler_Exception("Couldn't write compiled data. Failed to open {$target}");
     }
     fwrite($fp, "<?php " . implode('', $ret));
     fclose($fp);
     $stripped = php_strip_whitespace($target);
     $fp = @fopen($target, 'w');
     if ($fp === false) {
         throw new Doctrine_Compiler_Exception("Couldn't write compiled data. Failed to open {$file}");
     }
     fwrite($fp, $stripped);
     fclose($fp);
     return $target;
 }
 /**
  * Get available doctrine validators
  *
  * @return array $validators
  */
 public function getValidators()
 {
     if (!$this->_loadedValidatorsFromDisk) {
         $this->_loadedValidatorsFromDisk = true;
         $validators = array();
         $dir = Doctrine::getPath() . DIRECTORY_SEPARATOR . 'Doctrine' . DIRECTORY_SEPARATOR . 'Validator';
         $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir), RecursiveIteratorIterator::LEAVES_ONLY);
         foreach ($files as $file) {
             $e = explode('.', $file->getFileName());
             if (end($e) == 'php') {
                 $name = strtolower($e[0]);
                 $validators[] = $name;
             }
         }
         $this->registerValidators($validators);
     }
     return $this->_validators;
 }