我一直在研究php 5社交网络提供的注册表类。目前尚不清楚它在做什么。通常的注册表设计模式类似于PHP注册表模式中介绍的模式。这似乎是不同的:
class Registry {
/**
* Array of objects
*/
private $objects;
/**
* Array of settings
*/
private $settings;
public function __construct() {
}
/**
* Create a new object and store it in the registry
* @param String $object the object file prefix
* @param String $key pair for the object
* @return void
*/
public function createAndStoreObject( $object, $key )
{
require_once( $object . '.class.php' );
$this->objects[ $key ] = new $object( $this );
}
/**
* Get an object from the registries store
* @param String $key the objects array key
* @return Object
*/
public function getObject( $key )
{
return $this->objects[ $key ];
}
}
我无法理解属于函数的"新$ object($ this)"的结构" createAndStoreObject($ object,$ key)"。
在index.php中,此类是这样使用的:
require('registry/registry.class.php');
$registry = new Registry();
$registry->createAndStoreObject( 'mysqldb', 'db' );
include(FRAMEWORK_PATH . 'config.php'); // Config.php contains the database configuration
// create a database connection
$registry->getObject('db')->newConnection( $configs['db_host_sn'], $configs['db_user_sn'], $configs['db_pass_sn'], $configs['db_name_sn']);
// store settings in our registry
$settingsSQL = "SELECT `key`, `value` FROM settings"; // settings is a table previously defined
$registry->getObject('db')->executeQuery( $settingsSQL );
while( $setting = $registry->getObject('db')->getRows() )
{
$registry->storeSetting( $setting['value'], $setting['key'] );
}
或
$registry->createAndStoreObject( 'urlprocessor', 'url' );
$registry->getObject('url')->getURLData();
0)这意味着" $ this"?
1)一个人可以在索引文件中向我解释这种结构吗?
2)我可以用来理解这种高级PHP的可读书吗?
$这是一个变量,指示您程序当前在范围中执行的类的实例,即您在该类的实例
在尝试基于面向对象的编程的设计模式之前,您需要了解面向对象的编程。$ this,self ::,parent ::,static ::和PHP的其他几种语言特征可帮助您使用OO语言的多态性特征...在尝试了解之前,请阅读并掌握OO编程和原理您要在这里学习的概念,否则您将浪费时间..就像看微积分,询问哪些乘法符号是...