我有两个PSR-4 composer项目,我希望从一个项目到另一个项目,文件结构如下:
projectfoo
-public
--index.php
-src
--CompanyName
---Foo
----Foo.php
-composer.json
projectbar
-src
--CompanyName
---Bar
----Bar.php
-composer.json
composer.json文件被定义为项目库
{
"name": "companyname/foo",
"require": {
"companyname/bar": "*"
},
"repositories": [
{
"type": "path",
"url": "../projectbar"
}
],
"autoload": {
"psr-4": {
"CompanyName\\": "src/CompanyName"
}
}
}
和项目栏为:
{
"name": "companyname/bar",
"version": "1.0.0",
"autoload": {
"psr-4": {
"CompanyName\\": "src/CompanyName"
}
}
}
运行编辑器更新
正确地生成包含companyname/foo文件夹的供应商文件夹。
在索引中。php
在projectfoo中,我有:
require_once '../vendor/autoload.php';
$bar = new \CompanyName\Bar\Bar();
但是,当run\CompanyName\Bar\Bar
未定义时。
为什么自动加载中不包括条
。php文件?
作曲家安装
作曲家更新
作曲家转储-自动加载
CompanyName
更改为不同的名称。供应商\作曲家
文件夹中的installed.json
文件,条形图项目列为:#
{
"name": "companyname/bar",
"version": "1.0.0",
"version_normalized": "1.0.0.0",
"dist": {
"type": "path",
"url": "../companyname/bar",
"reference": "f35ed0ad82c8280db9b603712dd256074f99e196",
"shasum": null
},
"type": "library",
"installation-source": "dist",
"autoload": {
"psr-4": {
"CompanyName\\": "src/CompanyName",
}
}
}
这个问题围绕着作曲家使用符号链接链接“路径”项目的方式。
因为我是在windows系统上开发的,并在Ubuntu vagrant box上执行代码,所以在windows上设置的符号链接在运行composer install
时解析为盒子内的断开路径。这也解释了为什么在windows上运行的测试能够找到Bar
,而不能在虚拟框中运行测试。
为了解决这个问题,我最初强迫作曲家镜像项目而不是符号链接,但是,这仍然导致供应商文件夹中的符号链接出现问题。
我现在已经开始在不同的存储库中托管我的库,并使用“type”:“vcs”
标签导入它们,这很好。Composer还可以在进行新提交时处理更新包,而在使用带有镜像的“type”:“path”
标记时不会发生这种情况。
我有一个项目结构: 在index.php我创建2个新对象: 我的Test.php 我的App.php 我的自动加载对象在composer.json: 在index.php中成功创建了对象测试,但在创建新应用程序时,出现错误: 致命错误:未捕获错误:在第8行的/home/denis/Coding/xuborxcms/public/index.php中找不到类'Xuborx\Cms\App' 此外,当
这篇文章是对 PHP自动加载功能 的一个总结,内容涉及 PHP自动加载功能 、PHP命名空间、PSR0/PSR4标准 等内容。 一、PHP 自动加载功能 PHP 自动加载功能的由来 在 PHP 开发过程中,如果希望从外部引入一个 Class ,通常会使用 include 和 require 方法,去把定义这个 Class 的文件包含进来。这个在小规模开发的时候,没什么大问题。但在大型的开发项目中,
问题内容: 我的Java应用程序有问题,特别是从计算机中的某个位置加载图像时。 在这篇文章之后,我使用和来在计算机上加载图像。首先,我将图片()放入源代码中,并且可以正常工作。但是,如果我将图像放到另一个地方(比如说),Java IDE会向我显示一个 这是代码: 问题答案: &不适用于文件路径,但适用于相对于代码库的路径。如果代码库为,则可以找到资源的相对路径为。 通过加载文件之间..differ
问题内容: 如何从库本身中获取共享库的路径? 换句话说,假设使用来加载库X ,如何从库本身内部访问用于加载所述库的路径? 请注意,我不能首先将这个库加载到该库中。 更新: 这是使用静态变量的方法: 问题答案: 动态链接器实际上搜索几个位置以找到每个动态库。其中包括(来自man ld.so): 环境变量给定的路径 烘焙到二进制文件中的路径将加载条目下的库 缓存文件/etc/ld.so.cache /
错误是: 项目结构: crearcompetition。php(位于public/)如下所示: 竞争。php(位于src/Championsweb/Model/VO中)如下所示: Composer.json看起来像这样: 指数php具有自动加载要求: 自动加载类图。php具有CompetitionVO类: 基本上是竞争。看法php有一个表单,通过POST传递给CREARCOM竞。php。然后是竞争
问题内容: 假设我已经使用Groovyc编译了Groovy脚本,该脚本已在文件系统中生成了一个或多个.class文件。如何从Java应用程序动态地将这些类添加到类路径中,以加载它们并调用它们的方法?目标是预编译Groovy脚本并将其存储到数据库中,以便可以从脚本的编译版本执行评估。 问题答案: 您可以创建URLClassLoader的实例以从目录加载新类: 第1 行将.class 创建到.clas