什么是PHP的最佳实践?

时间:2011-03-22 08:49:02

标签: php

我希望专家们能够在PHP中组织我的代码时给出一些建议。通常我所做的是将代码分解为多个文件,然后include();将它们全部转换为主文件。这使我更容易调试代码,但程序变慢。那么,编程大师,请给我一些建议。

3 个答案:

答案 0 :(得分:1)

一个非常大的问题,我相信人们更喜欢不同的东西。一般来说,有一个索引页面可以根据请求包含页面(大多数时候使用交换机进行文件包含攻击防护)。

包含的页面还有一个已检查的已定义常量,以确保它们不能单独执行。

我总是喜欢使用模板系统(实际上是一个非常快的模板系统),我使用MVC类型(模型视图控制器)组织我的代码。我创建了一个user.php,一个user.class.php和用户模板,例如(用户是控制器,类是模型,模板视图)。

编辑 - 来自旧项目的索引页面示例(缩减为仅显示点数) 在这一个我正在使用Smarty,顺便说一句。

<?php
define('game',1);

session_start();

require_once 'libs/smartySetup.php';
require_once 'libs/containers/utils.class.php';
require_once 'login.php';

$page = isset($_REQUEST['page']) ? $_REQUEST['page'] : 'home';
$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : '';

switch($page)
{
    case 'home':       break;    // unlogged 
    case 'register':   break;    // unlogged
    case 'town':       break;
    default:
        $page = 'home';
}

include("$page.php");


?>

答案 1 :(得分:1)

答案 2 :(得分:1)

查看Autoload PHP5 OOP Manual Page

你可以看到Autoloader可以“爬行”到“查找”类的目录中。

您可以设置它(如建议的那样,并像在Zec中一样发生在MVC中),用于创建类,例如Connector.class.php,它放在site / DB /文件夹中并调用为:new DB_Connector()