微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决你如何在类函数一侧的包含文件中声明 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 举报,一经查实,本站将立刻删除。