我正在编写我的第一个PHP应用程序.每个人都在讨论如何bootstrap.php
初始化您的应用.这是有道理的,我把一个我很满意的东西放在一起.有两件事我不明白,似乎没有人提到:
我从哪里打电话给我的boostrap?我是否将其包含在每个页面中?请告诉我有更好的方法......
我怎么做到这样我的引导程序不是经常被调用的?我认为它只需要在应用程序的开头或新会话的开始时调用.
Jim W... 13
1:通常,引导程序位于"application"目录中.它从"public"目录调用,该目录与应用程序处于同一级别(不在其中).公共文件夹中的index.php应该包含bootstrap.php,这是您应该将Document_Root设置为的位置(请注意,您可能需要更改/添加一些包含路径才能工作)
2:只应通过公用文件夹中的index.php文件包含一次.如果正确完成,只要包含它就足够了.
希望有所帮助.
1:通常,引导程序位于"application"目录中.它从"public"目录调用,该目录与应用程序处于同一级别(不在其中).公共文件夹中的index.php应该包含bootstrap.php,这是您应该将Document_Root设置为的位置(请注意,您可能需要更改/添加一些包含路径才能工作)
2:只应通过公用文件夹中的index.php文件包含一次.如果正确完成,只要包含它就足够了.
希望有所帮助.
这取决于您的应用程序架构.
如果您的架构是一个很好的旧"PHP脚本群" - 直接从浏览器调用的PHP脚本 - 那么您将以某种方式将它包含在每个脚本的顶部.
现在,大多数开发人员(和框架)通过/index.php以这种或那种方式对所有请求进行编组,通常会进行一些URL重写,以便为用户提供漂亮,漂亮的URL.
在这个时代,你可能应该做后者,或者至少考虑一下.它可以带来更好的组织,更重要的是,它允许您将所有代码保留在Web服务器的文档根目录之外,这是一个很好的安全实践,出于多种原因,这些原因超出了本答案的范围.
看看单身人士模式.您可以将引导类作为资源容器加倍,例如:
$bootstrap = Bootstrap::getInstance(); $dbConn = $bootstrap->getPdoDbh();
您可以include
或require
文件,或使用自动加载器,并确保您有一个调用实例化所有页面上的对象.getInstance()
在类定义之后,您甚至可以在文件的底部调用.
或者您可以使用基于URL的路由,并让您的所有请求都通过单个index.php文件,就像Zend Framework一样.或者更好的是,使用Zend Framework.
这个答案假设您正在使用PHP> = 5进行OOP,这真的是要走的路.