<?php
/**********************************************************************************
* Copyright 2004 BIT, Ltd. http://limb-project.com, mailto: support@limb-project.com
*
* Released under the LGPL license (http://www.gnu.org/copyleft/lesser.html)
***********************************************************************************
*
* $Id$
*
***********************************************************************************/
require_once(LIMB_DIR . '/core/system/objects_support.inc.php');

if(!isRegisteredResolver('object'))
{
  include_once(LIMB_DIR . '/core/file_resolvers/PackageFileResolver.class.php');
  include_once(LIMB_DIR . '/core/file_resolvers/ObjectFileResolver.class.php');
  registerFileResolver('object', new ObjectFileResolver(new PackageFileResolver()));
}

class ObjectFactory
{
  function create($class_name, $args = array())
  {
    ObjectFactory :: _includeClassFile($class_name);
    $handle =& new Handle($class_name, $args);

    return Handle :: resolve($handle);
  }

  function _includeClassFile($class_name)
  {
Exemplo n.º 2
0
<?php
/**********************************************************************************
* Copyright 2004 BIT, Ltd. http://limb-project.com, mailto: support@limb-project.com
*
* Released under the LGPL license (http://www.gnu.org/copyleft/lesser.html)
***********************************************************************************
*
* $Id$
*
***********************************************************************************/
require_once(LIMB_DIR . '/core/util/Ini.class.php');
require_once(LIMB_DIR . '/core/file_resolvers/file_resolvers_registry.inc.php');

if(!isRegisteredResolver('ini'))
{
  include_once(LIMB_DIR . '/core/file_resolvers/PackageFileResolver.class.php');
  include_once(LIMB_DIR . '/core/file_resolvers/IniFileResolver.class.php');
  registerFileResolver('ini', new IniFileResolver(new PackageFileResolver()));
}

function getIniOption($file_path, $var_name, $group_name = 'default', $use_cache = null)
{
  $ini =& getIni($file_path, $use_cache);
  return $ini->getOption($var_name, $group_name);
}

function getIni($file_name, $use_cache = null, $resolver_name = 'ini')
{
  if (isset($GLOBALS['testing_ini'][$file_name]))
  {
    $resolved_file = VAR_DIR . '/' . $file_name;
<?php
/**********************************************************************************
* Copyright 2004 BIT, Ltd. http://limb-project.com, mailto: support@limb-project.com
*
* Released under the LGPL license (http://www.gnu.org/copyleft/lesser.html)
***********************************************************************************
*
* $Id$
*
***********************************************************************************/
require_once(LIMB_DIR . '/class/lib/system/objects_support.inc.php');

if(!isRegisteredResolver('site_object'))
{
  include_once(LIMB_DIR . '/class/core/file_resolvers/PackageFileResolver.class.php');
  include_once(LIMB_DIR . '/class/core/file_resolvers/SiteObjectFileResolver.class.php');
  registerFileResolver('site_object', new SiteObjectFileResolver(new PackageFileResolver()));
}

abstract class SiteObjectFactory
{
  static function create($class_name)
  {
    self :: _includeClassFile($class_name);

    return new $class_name();
  }

  static protected function _includeClassFile($class_name)
  {
    if(class_exists($class_name))
<?php
/**********************************************************************************
* Copyright 2004 BIT, Ltd. http://limb-project.com, mailto: support@limb-project.com
*
* Released under the LGPL license (http://www.gnu.org/copyleft/lesser.html)
***********************************************************************************
*
* $Id$
*
***********************************************************************************/
require_once(LIMB_DIR . '/core/error/Debug.class.php');

if(!isRegisteredResolver('dao'))
{
  include_once(LIMB_DIR . '/core/file_resolvers/PackageFileResolver.class.php');
  include_once(LIMB_DIR . '/core/file_resolvers/DAOFileResolver.class.php');
  registerFileResolver('dao', new DAOFileResolver(new PackageFileResolver()));
}

class DAOFactory
{
  var $daos = array();

  function & instance()
  {
    if (!isset($GLOBALS['DAOFactoryGlobalInstance']) || !is_a($GLOBALS['DAOFactoryGlobalInstance'], 'DAOFactory'))
      $GLOBALS['DAOFactoryGlobalInstance'] =& new DAOFactory();

    return $GLOBALS['DAOFactoryGlobalInstance'];
  }
<?php
/**********************************************************************************
* Copyright 2004 BIT, Ltd. http://limb-project.com, mailto: support@limb-project.com
*
* Released under the LGPL license (http://www.gnu.org/copyleft/lesser.html)
***********************************************************************************
*
* $Id: DataMapperFactory.class.php 1352 2005-06-07 15:35:29Z pachanga $
*
***********************************************************************************/
require_once(LIMB_DIR . '/core/system/objects_support.inc.php');

if(!isRegisteredResolver('mapper'))
{
  include_once(LIMB_DIR . '/core/file_resolvers/PackageFileResolver.class.php');
  include_once(LIMB_DIR . '/core/file_resolvers/DataMapperFileResolver.class.php');
  registerFileResolver('mapper', new DataMapperFileResolver(new PackageFileResolver()));
}

class DataMapperFactory
{
  function create($class_name)
  {
    DataMapperFactory :: _includeClassFile($class_name);

    $mapper =& new $class_name();
    if(!is_a($mapper, 'AbstractDataMapper'))
      die($class_name . ' does not implement AbstractDataMapper interface');

    return $mapper;
  }
<?php
/**********************************************************************************
* Copyright 2004 BIT, Ltd. http://limb-project.com, mailto: support@limb-project.com
*
* Released under the LGPL license (http://www.gnu.org/copyleft/lesser.html)
***********************************************************************************
*
* $Id$
*
***********************************************************************************/
require_once(LIMB_DIR . '/core/system/objects_support.inc.php');

if(!isRegisteredResolver('db_table'))
{
  include_once(LIMB_DIR . '/core/file_resolvers/PackageFileResolver.class.php');
  include_once(LIMB_DIR . '/core/file_resolvers/DbTableFileResolver.class.php');
  registerFileResolver('db_table', new DbTableFileResolver(new PackageFileResolver()));
}

class LimbDbTableFactory
{
  var $_tables;

  function & instance()
  {
    if (!isset($GLOBALS['LimbDbTableFactoryGlobalInstance']) || !is_a($GLOBALS['LimbDbTableFactoryGlobalInstance'], 'LimbDbTableFactory'))
      $GLOBALS['LimbDbTableFactoryGlobalInstance'] =& new LimbDbTableFactory();

    return $GLOBALS['LimbDbTableFactoryGlobalInstance'];
  }
<?php
/**********************************************************************************
* Copyright 2004 BIT, Ltd. http://limb-project.com, mailto: support@limb-project.com
*
* Released under the LGPL license (http://www.gnu.org/copyleft/lesser.html)
***********************************************************************************
*
* $Id$
*
***********************************************************************************/
require_once(LIMB_DIR . '/class/lib/system/objects_support.inc.php');

if(!isRegisteredResolver('finder'))
{
  include_once(LIMB_DIR . '/class/core/file_resolvers/PackageFileResolver.class.php');
  include_once(LIMB_DIR . '/class/core/file_resolvers/FinderFileResolver.class.php');
  registerFileResolver('finder', new FinderFileResolver(new PackageFileResolver()));
}

abstract class FinderFactory
{
  static function create($class_name)
  {
    self :: _includeClassFile($class_name);

    return new $class_name();
  }

  static protected function _includeClassFile($class_name)
  {
    if(class_exists($class_name))
<?php
/**********************************************************************************
* Copyright 2004 BIT, Ltd. http://limb-project.com, mailto: support@limb-project.com
*
* Released under the LGPL license (http://www.gnu.org/copyleft/lesser.html)
***********************************************************************************
*
* $Id$
*
***********************************************************************************/
require_once(LIMB_DIR . '/class/lib/error/Debug.class.php');

if(!isRegisteredResolver('datasource'))
{
  include_once(LIMB_DIR . '/class/core/file_resolvers/PackageFileResolver.class.php');
  include_once(LIMB_DIR . '/class/core/file_resolvers/DatasourceFileResolver.class.php');
  registerFileResolver('datasource', new DatasourceFileResolver(new PackageFileResolver()));
}

class DatasourceFactory
{
  static protected $datasources = array();

  static public function create($class_path)
  {
    $class_name = end(explode('/', $class_path));

    if(isset(self :: $datasources[$class_name]))
      return self :: $datasources[$class_name];

    if(!class_exists($class_name))