完全面向对象的PHP编程示例

时间:2011-11-04 00:10:41

标签: php oop

小型完全OO网站是否有任何样本?我看到了Joomla!的代码,我很喜欢它,但是我需要一点时间来理解完整的代码。我想知道是否有一个简单的样本。为了向您展示完全OO编程的含义,这里是Joomla!的管理页面代码:

<?php

define('_JEXEC', 1);
define('DS', DIRECTORY_SEPARATOR);

if (file_exists(dirname(__FILE__) . '/defines.php')) {
    include_once dirname(__FILE__) . '/defines.php';
}

if (!defined('_JDEFINES')) {
    define('JPATH_BASE', dirname(__FILE__));
    require_once JPATH_BASE.'/includes/defines.php';
}

require_once JPATH_BASE.'/includes/framework.php';
require_once JPATH_BASE.'/includes/helper.php';
require_once JPATH_BASE.'/includes/toolbar.php';

JDEBUG ? $_PROFILER->mark('afterLoad') : null;

$app = JFactory::getApplication('administrator');

$app->initialise(array(
    'language' => $app->getUserState('application.lang')
));

JDEBUG ? $_PROFILER->mark('afterInitialise') : null;

$app->route();

JDEBUG ? $_PROFILER->mark('afterRoute') : null;

$app->dispatch();

JDEBUG ? $_PROFILER->mark('afterDispatch') : null;

$app->render();

JDEBUG ? $_PROFILER->mark('afterRender') : null;

echo $app;
?>

[编辑] 注意:我应该提到我熟悉OO概念。我是一名.Net开发人员已有好几年了。我只想要(如果可能的话)快速了解如果在网络世界中选择这种方法应该做些什么。

2 个答案:

答案 0 :(得分:2)

Joomla是一个完整的CMS,也许它不是最好的学习场所。

如果您想了解PHP OO,请查看to the official guide about OO

我还建议看看PHP5框架而不是CMS,它们在很多情况下都更清晰。特别是看看5.3框架,你可以看到一些像namespace这样的新功能。 一些框架5.3是:

Lithium

Nanoframework

symfony2

希望这有帮助

答案 1 :(得分:1)

这里有一个完整的OOP和使用Silex微框架构建的应用程序的工作示例(您可以将其视为Symfony 2框架的缩小版本)

require_once __DIR__.'/silex.phar'; 

$app = new Silex\Application(); 

$app->get('/hello/{name}', function($name) use($app) { 
    return 'Hello '.$app->escape($name); 
}); 

$app->run(); 

玩得开心