php包含其他内容

时间:2014-02-09 17:04:26

标签: php

所以我的登录检查我已经分成两个部分,我尝试将两个不同的文件包括在内。首先,我将显示原始代码然后显示拆分代码。我认为我的问题在于包含链接。我尝试使用绝对路径。但它似乎失败了。我的整个应用程序是模块化的,因此我在App结构的其余部分之外设置了全局文件,并根据需要调用文件。我还想过只通过_autoload()加载函数,但我不知道这会解决我的问题。

<?
//Inventory index.php
include$_SERVER['DOCUMENT_ROOT'].'/Globals/db_connect.php';
include$_SERVER['DOCUMENT_ROOT'].'/Globals/functions.php';
sec_session_start();if(login_check($mysqli)==true){?>

/////Html and or more php code to be executed. Usualy a mix of both.

<?}else{
echo ("You are not authorized to access this page, please <a href=\"http://website.com/AUTH/login.html\">login</a>. <br/>");}?>

这就是我要做的事情...... P.S。我知道我的代码有点难以阅读我试图将其格式化以便于阅读,但我可以比我可以间隔代码更好地处理团块。不知道为什么。

<?
//Inventory index.php
include$_SERVER['DOCUMENT_ROOT'].'/Globals/auth1.php';?>

/////Html and or more php code to be executed. Usualy a mix of both.

<?}else{include$_SERVER['DOCUMENT_ROOT'].'/Globals/auth2.php';?>

我认为正在发生的事情是Auth1中的包含失败了。我的绝对路径是否失败?我最好使用_autoload()。

2 个答案:

答案 0 :(得分:0)

我可以建议使用composer和autoloader来支持不同类型的文件加载。对于制作,您可以使用--optimize option使自动加载更好(因为我记得作曲家扫描所有文件夹并构建现有文件数组)

答案 1 :(得分:0)

出于多种原因,您应该始终选择“自动加载”以支持手动包含。

  1. 可读结构 - 每个文件一个类,每个命名空间段一个文件夹允许您快速查找项目目录结构中的任何内容。

  2. 易于维护 - 如果您更改了文件的文件夹结构/位置(以及命名空间),则无法重写和验证路径。

  3. 与其他项目的兼容性,例如使用PSR-0PSR-4。 PSR-0用于覆盖遗留代码, PSR-4 用于新库。

  4. 与软件包管理软件的兼容性 - 期望遵守某种可预测的约定。例如,Composer需要PSR-0或PSR-4,并为您启用自动加载。

  5. 关于编码标准和格式的主题同样适用:

    1. 熟悉的结构更容易识别。

    2. 这个决定完全是武断的;它始终是您(或您的团队)的选择。要么工作正常 - 你会习惯其中任何一个。

    3. 一致性非常重要,PSR-1PSR-2是Symfony&amp; amp;的通用语言。朋友以及许多其他使用作曲家作为他们的包裹管理(和其他人)的项目。