protected function _init() { foreach ($this::$_mixins as $class) { if (Vendors::class_exists($class)) { $this->__mixins[] = new $class($this); } } }
public static function initializable() { return Vendors::class_exists('\\mysqli'); }
<?php use row\core\Vendors; // Application (most importante!) Vendors::add('app', function ($name, $class) { $path = str_replace('\\', DIRECTORY_SEPARATOR, $class); return ROW_APP_PATH . DIRECTORY_SEPARATOR . $path . '.php'; });
public static function initializable() { return Vendors::class_exists('\\SQLiteDatabase'); }
<?php use row\core\Vendors; // Application (most importante!) Vendors::add('app', function ($name, $class) { $path = str_replace('\\', DIRECTORY_SEPARATOR, $class); return ROW_APP_PATH . DIRECTORY_SEPARATOR . $path . '.php'; }); /* Symfony package (why??) * Vendors::add('symfony', function($vendor, $class) { $file = ROW_VENDORS_PATH.'/doctrine-orm/Doctrine/Symfony/'.str_replace('\\', '/', $class).'.php'; return $file; }); /* Doctrine ORM package (part of Symfony I'm sure) * Vendors::add('doctrine', function($vendor, $class) { $file = ROW_VENDORS_PATH.'/doctrine-orm/Doctrine/'.str_replace('\\', '/', $class).'.php'; return $file; }); /**/ // Zend (testing underscore class based vendors) Vendors::add('zend', function ($vendor, $class) { $file = ROW_VENDORS_PATH . '/ZendTEST/framework/library/Zend/' . str_replace('_', '/', $class) . '.php'; return $file; });
protected function getControllerObject($class) { if (!is_int(strpos($class, '\\'))) { $class = $this->moduleClassTranslation($class); } if (Vendors::class_exists($class)) { $controller = new $class($this); return $controller; } }
<?php define('ROW_APP_PATH', dirname(__DIR__)); // The application root define('ROW_APP_WEB', ROW_APP_PATH . '/web'); define('ROW_PATH', dirname(ROW_APP_PATH)); // Absolute root define('ROW_VENDORS_PATH', ROW_PATH . '/vendors'); // Folders with all the vendor folders define('ROW_VENDOR_ROW_PATH', ROW_VENDORS_PATH . '/row'); // The folder for the framework vendor Rudie On Wheels require __DIR__ . '/env.php'; // core classes require ROW_VENDOR_ROW_PATH . '/core/Object.php'; require ROW_VENDOR_ROW_PATH . '/core/Options.php'; require ROW_VENDOR_ROW_PATH . '/core/Vendors.php'; require ROW_VENDOR_ROW_PATH . '/core/APC.php'; use row\core\Vendors; // init vendor class Vendors::init(ROW_VENDORS_PATH); //Vendors::$cache = false; // don't cache classes with APC // include more vendors (or not) require __DIR__ . '/vendors.php';
public function fetch($query, $mixed = null) { // default options $class = false; $justFirst = false; $params = array(); // unravel options if (is_array($mixed)) { if (is_int(key($mixed))) { $params = $mixed; } else { $class = Options::one($mixed, 'class', false); $justFirst = $mixed->get('single', $mixed->get('first', false)); $params = $mixed->get('params', array()); } } else { if (is_bool($mixed)) { $justFirst = $mixed; } else { if (is_string($mixed)) { $class = $mixed; } } } // build SQL if (is_array($query)) { $query = $this->buildSQL($query); } // apply params if ($params) { $query = $this->replaceholders($query, $params); } $result = $this->result($query); Vendors::class_exists($class) or $class = false; if ($justFirst) { if ($class) { return $result->nextObject($class, array(true)); } return $result->nextAssocArray(); } if ($class) { return $result->allObjects($class, array(true)); } return $result->allAssocArrays(); }
/** * */ public static function _byQuery($query, $justFirst = false, $params = array()) { // don't require $justFirst, so params can be passed as 2nd argument (in $justFirst) if (is_array($justFirst)) { $_jf = $justFirst; // allow reverse arguments: justFirst in $params $justFirst = is_bool($params) ? $params : false; $params = $_jf; } $class = get_called_class(); if (Vendors::class_exists($class . 'Record') && is_a($class . 'Record', get_called_class())) { $class = $class . 'Record'; } return static::dbObject()->fetch($query, array('class' => $class, 'single' => $justFirst, 'params' => $params)); }