首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用mezzio swoole/openswoole定义全局常数

用mezzio swoole/openswoole定义全局常数
EN

Stack Overflow用户
提问于 2021-11-19 13:26:36
回答 1查看 159关注 0票数 0

我试图设置一个全局常量,以后所有php swoole进程和线程都可以访问它,但它似乎是不可见的或什么的。

下面是我的index.php --几乎是香草的mezzio --我只看到了APPROOT常量:

代码语言:javascript
复制
(function () {
    if (!defined('APPROOT')) {
        define('APPROOT', __DIR__);
    }

    /** @var \Psr\Container\ContainerInterface $container */
    $container = require 'config/container.php';

    /** @var \Mezzio\Application $app */
    $app     = $container->get(\Mezzio\Application::class);
    $factory = $container->get(\Mezzio\MiddlewareFactory::class);

    // Execute programmatic/declarative middleware pipeline and routing
    // configuration statements
    (require 'config/pipeline.php')($app, $factory, $container);
    (require 'config/routes.php')($app, $factory, $container);

    $app->run();
})();

但是,当我试图引用/使用一个中间工具中的常量时,会出现一个错误:

代码语言:javascript
复制
<?php

declare(strict_types=1);

namespace Application\Middleware;

use Psr\Http\Message\ResponseFactoryInterface;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\MiddlewareInterface;
use Psr\Http\Server\RequestHandlerInterface;

class BootstrapMiddleware implements MiddlewareInterface
{
    public function __construct(private ResponseFactoryInterface $responseFactory)
    {
    }

    public function process(
        ServerRequestInterface $request,
        RequestHandlerInterface $handler
    ): ResponseInterface {


        $this->setAssetsCompiledLoc();

        $response = $handler->handle($request);
        return $response;
    }

    private function setAssetsCompiledLoc()
    {
        if ( ! defined('ASSET_MAP')) {
            $manifestPath = \APPROOT . '/manifests/manifest-' . ENV . '.json';
            // ...blah...
        }
    }
}

我知道这个错误:

错误未定义常数"APPROOT“

为什么?这是因为swoole上下文之外的所有变量都被丢弃了,而我在swoole上下文之外设置了这个变量吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-21 22:17:05

在查看Mezzio\ swoole \Command\StartCommand的源代码时,我发现我认为是我的php应用程序的入口点的index.php实际上根本没有被使用。

因此,常数确实是未定义的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70035587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档