本文整理汇总了PHP中Doctrine_Core::getPath方法的典型用法代码示例。如果您正苦于以下问题:PHP Doctrine_Core::getPath方法的具体用法?PHP Doctrine_Core::getPath怎么用?PHP Doctrine_Core::getPath使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Doctrine_Core
的用法示例。
在下文中一共展示了Doctrine_Core::getPath方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: compile
/**
* 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_Core::getPath();
$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path . '/Doctrine'), 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 && strpos($file->getFileName(), 'sfYaml') === 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;
}
示例2: getValidators
/**
* Get available doctrine validators
*
* @return array $validators
*/
public function getValidators()
{
if (!$this->_loadedValidatorsFromDisk) {
$this->_loadedValidatorsFromDisk = true;
$validators = array();
$dir = Doctrine_Core::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;
}
示例3: includeAndRegisterDoctrineTaskClasses
/**
* Includes and registers Doctrine-style tasks from the specified directory / directories
*
* If no directory is given it looks in the default Doctrine/Task folder for the core tasks
*
* @param mixed [$directories=null] Can be a string path or array of paths
*/
protected function includeAndRegisterDoctrineTaskClasses($directories = null)
{
if (is_null($directories)) {
$directories = Doctrine_Core::getPath() . DIRECTORY_SEPARATOR . 'Doctrine' . DIRECTORY_SEPARATOR . 'Task';
}
foreach ((array) $directories as $directory) {
foreach ($this->includeDoctrineTaskClasses($directory) as $className) {
$this->registerTaskClass($className);
}
}
}
示例4: getClassNameFromFileName
/**
*
* 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_Core::getPath() . DIRECTORY_SEPARATOR;
$class = str_replace($path, "", $fileName);
$class = str_replace(DIRECTORY_SEPARATOR, "_", $class);
$class = substr($class, 0, -4);
return $class;
}