你如何在类函数一侧的包含文件中声明 php supper 全局常量?

问题描述

我使用的是 Symfony v 2.8,它使用捆绑类函数来处理网页请求。

我创建了一个包含文件,我使用 require 语句加载该文件,该语句隔离了我用来创建多个变量的代码,这些变量通过我的网络应用程序使用,例如我的 web 应用程序,无论站点是在开发环境还是生产环境中运行,以及导航到我的网站中的页面或我的网站中的页面间的网站的 URI。目前,这些变量是需要包含文件函数的本地变量,因此我必须在需要这些变量的每个函数中重新包含该文件

我的目标是:

  1. 仅在捆绑 xxxxAction 函数中包含此文件 执行处理网页请求。

  2. 在 bundle xxxxAction 函数中创建后,有 在捆绑包中的所有函数看到范围内的变量 xxxAction 函数调用或它们调用函数,没有 需要将它们作为 SELF:: 作为前缀,就像 _POST 一样工作。

  3. 在 xxxAction bundle 函数以外的函数中,我会 而不必使用 global 语句或 $GLOBALS 关联数组。

  4. 将这些变量设为只读或常量,以便它们不能被 在包含文件中设置后修改

我的网站有很多页面,每个页面都有自己的 bundle Action 函数,每个页面需要包含文件

我已经看过 Variable scope at php.net 网站,但除非我错过了什么,否则我没有看到如何创建 Supper-Global 只读变量。

这是我用来创建局部变量的代码

$request = $this->get( 'request_stack' )->getCurrentRequest();
$session = $request->getSession();

$context = $this->container->get( 'router' )->getContext();

$site    = $this->get( 'request' )->getSchemeAndHttpHost();

//
// The regular expression checks if the referring web-spage's URL matches one of
// following:
//
//    http://mysite.name.com/app.PHP or
//    http://mysite.dev.name.com/app_dev.PHP or
//    https://mysite.name.com/app.PHP or
//    https://mysite.dev.name.com/app_dev.PHP.
//

$isFromMySite = ( preg_match( '/https?:\/\/mysite.(dev\.)?name.com\/app(_dev)?.PHP/',$_SERVER[ 'HTTP_REFERER' ] ) === 1 );

// baseURL: /app{_dev}.PHP  True  = Development Environment,False = Production Environment.

$baseURL = $context->getBaseUrl();

$isDev   = ( $baseURL == '/app_dev.PHP' );
$isProd  = ( $baseURL == '/app.PHP' );

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)