资讯专栏INFORMATION COLUMN

composer 应用

kyanag / 704人阅读

摘要:完全限定名称如在这种情况下,就是访问任意全局类函数或常量,都可以使用完全限定名称,例如或或。

Namespace

1.非限定名称或不包含前缀的类名称.
如 $a = new foo();
如果当前命名空间是 app,则 foo 为appfoo
如果当前没有命名空间,代码是全局的.则 foo 被解析为全局 foo

2.限定名称或包含前缀的名称.
如 $a = new userfoo();
如果当前命名空间为 app,则 foo 被解析为 appuserfoo();
如果使用 foo 的代码是全局的,不包含在任何命名空间中的代码,foo 会被解析为 userfoo。

3.完全限定名称
如 $a = new userfoo();
在这种情况下,foo 就是 userfoo();

访问任意全局类、函数或常量,都可以使用完全限定名称,例如 strlen() 或 Exception 或 INI_ALL。

composer

1.classmap
命名空间和文件路径的映射

{
    "autoload": {
        "classmap": ["src/", "lib/", "Something.php"]
    }
}

它会扫描指定目录下以. php 或. inc 结尾的文件中的 class,生成 class 到指定 file path 的映射.
并加入新生成的 vendor/composer/autoload_classmap.php 文件中

 $baseDir . "/app/Console/Kernel.php"
];
?>

2.files

{
    "autoload": {
        "files": ["src/MyLibrary/functions.php"]
    }
}

用于全局性的helper 目录下函数
它会生成一个 array,包含这些配置中指定的 files,再写入新生成的 vendor/composer/autoload_files.php 文件中,以供 autoloader 直接进行加载

3.psr-4

"autoload": {
        "psr-4": {
            "App": "app/"
        }
    }

key 和 value 就定义出了 namespace 以及到相应 path 的映射
注册命名空间到对应的路径下的 src 目录下,不指向 src 也可以.
然后根据命名空间去目录下寻找文件.
$a = new AppFoo();
会去 app目录下找 foo.php 文件

加入后执行 composer install 或 composer dump-autoload

项目实践

1.项目目录

2.composer.json

{
  "require": {
    "predis/predis": "1.1.0"
  },
  "autoload": {
    "psr-4": {
      "App": "app/",
      "Third":"third/"
    },
    "files":[
      "helper/constants.php",
      "helper/funs.php"
    ]
  }
}

执行 composer install 或 composer dumpautoload
会在vendor/composer 里对应的加载方式文件中生成映射

psr-4

return array(
    "Third" => array($baseDir . "/third"),
    "Predis" => array($vendorDir . "/predis/predis/src"),
    "App" => array($baseDir . "/app"),
);

files

return array(
    "da551be15a8db089a9deb0b11a4f158d" => $baseDir . "/helper/constants.php",
    "cebcf5f3197b00af0a0ca1ae69808ce5" => $baseDir . "/helper/funs.php",
);

使用,在 index.php 中

require dirname(__FILE__)."/vendor/autoload.php";

echo PredisClient::VERSION;
$app = new AppPay();
$app->index();

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/21675.html

相关文章

  • 如何使用Docker、Docker-Compose和Rancher搭建部署Pipeline(三)

    摘要:当面临这些挑战在短短半天的时间里,使用和现有的主机,我们已经将部署好并成功运行。使用来创建应用并定义服务。 在这一部分,我们将一步步的走进Rancher,细致的探讨Rancher将如何解决在部署与容器管理时出现的种种的问题。回顾教程的第二部分,你会发现我们已经将应用的部署迁移至Docker Compose,并且已经建立了一系列工作步骤来部署我们的应用。这将使得开发人员能够轻松的对他们的...

    Enlightenment 评论0 收藏0
  • docker-compose 运行 Flask 应用最佳实践

    摘要:现在有了之后,部署方式变了更加容易,不容易出现配置错误,环境不一致问题。实际应用中,经常遇到多个容器相配合运行一套应用程序的情况。所以想要将应用运行在容器中,该容器必须将该应用所有的环境依赖安装好。 showImg(https://segmentfault.com/img/remote/1460000017081815); 背景   以前部署应用,需要各种环境配置,各种shell操作...

    fasss 评论0 收藏0
  • docker-compose 运行 Flask 应用最佳实践

    摘要:现在有了之后,部署方式变了更加容易,不容易出现配置错误,环境不一致问题。实际应用中,经常遇到多个容器相配合运行一套应用程序的情况。所以想要将应用运行在容器中,该容器必须将该应用所有的环境依赖安装好。 showImg(https://segmentfault.com/img/remote/1460000017081815); 背景   以前部署应用,需要各种环境配置,各种shell操作...

    sumory 评论0 收藏0
  • Docker学习之Compose介绍(6)

    摘要:列出项目中目前的所有容器。删除所有停止状态的服务容器。一般的,当指定数目多于该服务当前实际运行容器,将新创建并启动容器反之,将停止容器。命令说明恢复处于暂停状态中的服务。 Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。其代码目前在 https://github.com/docker/com... 上开源。 介绍 Compose 定位...

    luodongseu 评论0 收藏0
  • Docker学习之Compose介绍(6)

    摘要:列出项目中目前的所有容器。删除所有停止状态的服务容器。一般的,当指定数目多于该服务当前实际运行容器,将新创建并启动容器反之,将停止容器。命令说明恢复处于暂停状态中的服务。 Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。其代码目前在 https://github.com/docker/com... 上开源。 介绍 Compose 定位...

    Jensen 评论0 收藏0
  • Docker Compose 整合发布应用相关服务

    摘要:于是,程序不再是原先单一的服务,而是,变成了一系列密切相关的服务。需要注意的是,在模式下申请证书,需要向证明服务器能被访问。 首先,祝各位新年快乐,万事如意,鸡年大吉。 这次要来说说一个和前端并不太相关的东西——docker compose,一个整合发布应用的利器。 如果,你对 docker 有一些耳闻,那么,你可能知道它是什么。 不过,你不了解也没有关系,在作者眼中,docker 就...

    microcosm1994 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<