- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚开始使用 Composer。我想确保我正确理解 Composer 在下载和安装软件包时所做的工作 来自 Packagist 使用 Composer 的默认设置。这个对吗:
composer.json
的“要求”部分file 指定将要下载和安装的包 来自 Packagist。 只会下载和安装“需要”部分中列出的那些软件包。 autoload_namespaces.php
文件是在默认的 vendor
中创建的文件夹(在下载和安装期间在项目的根目录中创建)。该文件包含每个下载和安装的包的命名空间定义,映射到文件系统上的文件夹 autoload_namespaces.php's
访问。如果每个下载的文件都包含与 autoload_namespaces.php's
匹配的命名空间定义,则命名空间命名空间。 如果下载的文件中不存在命名空间定义,则文件中的类将分配给 GLOBAL 命名空间。 autoload_namespaces.php
文件 并且不受 composer.json
的“自动装载机”部分的任何影响,假设 autoload_namespaces.php
中存在命名空间文件未在 composer.json
中复制“自动装载机”部分。 最佳答案
你搞错了一些事情。
广告 1.:
有一个require-dev
除非您使用 --no-dev
阻止此操作,否则也将安装该部分。安装或更新时标记。另请注意,包名称不一定与 Packagist 上发布的内容相关联,您也可以有一个部分 repositories
这可以指向替代来源。
广告2:
创建任何超出 vendor/autoload.php
的文件是 Composer 内部的,你不应该弄乱它。 Composer 将读取所有 autoload
的定义和 autoload-dev
(除非给出 --no-dev
)部分并从中编译和适当的自动加载器。这包括具有所有 require
的主要软件和 require-dev
对于其他包。
根据已定义的自动加载类型,该编译的行为会有所不同:PSR-4、PSR-0、类映射或文件。
广告 3.:
如果一个包没有 autoload
部分,任何代码都不能自动加载。假设一个包的作者做的一切都是正确的,人们可以安全地假设自动加载会正确发生,这取决于自动加载的类型(PSR-4、PSR-0、类映射或文件)。
一个包可以包含多个用于自动加载的条目,并且可以负责多个命名空间。 autoload_namespaces.php
中的条目主要与理解 Composer 自动加载无关:一个包定义了一些自动加载,一个软件需要那个包,包括 vendor/autoload.php
,开发者从文档中知道有一个类WhateverNamespace\Foo
并简单地使用它:$class = new WhateverNamespace\Foo()
或 use WhateverNamespace\Foo; $class = new Foo()
.
不要假设从包名称到命名空间,或从命名空间到文件夹名称有任何联系。在 Composer 中,所有东西都可以有不同的命名(虽然这很容易让人困惑,这很少是一个好主意),但没有强制规则规定名为 GreatVendor/Awesome
的包。必须使用命名空间 GreatVendor\Awesome
或任何类似命名的文件夹布局。使用类映射,任何类都可以托管在任何文件中,不止一个类可以托管在单个文件中,并且仍然可以使用 include/require(_once)
包含代码。 .
一般情况下,任何最近的包都将坚持 PSR-4 或至少 PSR-0 并使用命名空间。但请注意,它的起源来自代码本身,而不是来自 Composer。 Composer 只会执行定义的自动加载定义并相应地采取行动,它不会神奇地干扰更改命名空间或其他东西。它仍然是基本的 PHP,具有公共(public)接口(interface)的额外好处,该接口(interface)告诉通用自动加载器如何在需要时查找类。
广告 4.:
没有“自定义命名空间”。 “自定义”在这里应该是什么意思? autoload
部分必须与编写的代码匹配,您不能使用 Composer 将代码中的命名空间更改为不同的命名空间。autoload_namespaces.php
不是自动加载定义的唯一来源。
Composer 将很好地处理重复的命名空间条目。如果定义了重复的类,它肯定会失败,但只要 namespace 前缀上只有重叠(例如 GreatVendor
被两个包 GreatVendor\Cache
和 GreatVendor\Db
使用),Composer 就会将它们区分开来。
关于php - Composer : What's The Difference Between Require and Autoloader?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37890913/
我知道这类问题已经得到解答,但就我而言,我已经尝试了所有配置,但仍然不起作用。我需要对我的配置有一个新的看法(我确信我错过了一些东西)。两个附加程序都会记录所有级别 我想将所有包的信息 >= 记录到控
我正在对 Windows 移动设备上的代码性能进行一些基准测试,并注意到某些算法在某些主机上的表现明显更好,而在其他主机上则明显更差。当然,考虑到时钟速度的差异。 供引用的统计数据(所有结果均由同一个
我有一个程序可以计算多边形的面积和周长。程序还会确认面积和周长的计算结果是否与预期结果相同。 我不明白发生了什么,但确认面积和周长是否与预期相同的验证部分无法正常工作。 例如,我现在测试并在所有情况下
Codepen :(对于那些想直接进入的人来说,这是一个代码笔。在 Chrome 和 IE 中尝试一下,看看结果的不同) 我正在尝试使用 css3 转换/过渡,因为它们比 jquery 效果更流畅。
我有几个不同的正则表达式要在给定文本中匹配和替换。 regex1 :如果文本包含单词“Founder”,则将所有文本替换为首席执行官 正则表达式2:如果文本包含9位数字,则将其替换为NUM 我尝试使用
我编写了多线程应用程序,它从每个线程的数据库连接到一些电子邮件帐户。我知道 JavaMail 没有任何选项可以使用 SOCKS5 进行连接,因此我决定通过 System.setProperty 方法使
如您所见,这是我当前 Storyboard的不同设备预览。底部的透明绿色被另一个 View Controller 占用,但需要为每个不同的尺寸类固定间距。我尝试将 Storyboard 中的宽度和高度
我正在创建一个游戏,我需要能够改变玩家 Sprite 的速度。我认为最好的选择是通过重力影响 Sprite 。为了给用户运动的感觉,我希望背景以完全相同的速度向相反的方向移动。 我怎样才能给背景一个不
我正在查看BTrees库并注意到有多个 TreeSet (和其他)类,例如 BTrees.IOBTree.TreeSet BTrees.OOBTree.TreeSet BTrees.LFBTree.T
我有一个小型 C++ 库,必须为 armeabi 和 armeabi7a 编译。我还有一个非常大的 c++ 库,只需要为 armeabi 编译。现在正在为两种架构编译它们(使用 NDK),但这使我的
我需要根据站点的当前部分稍微更改主题。 似乎 MuiThemeProvider 只在加载时设置 muiTheme;但需要在 props 变化时更新。 如何做到这一点? 最佳答案 您可以尝试将主题放在包
如何创建两个每个都有自己的计数器的 lSTListing 环境? 如果我使用例如 \lstnewenvironment{algorithm}[2]{ \renewcommand\lstlist
我想使用 Travis-CI 和 Github 基于分支设置部署。 IE。 - 如果我们从 develop 构建- 然后执行 /deploy.rb使用 DEV 环境主机名,如果 master - 然后
我有一个带有数据验证的 WPF MVVM 数据表单窗口。很多控件都是文本框。目前,数据绑定(bind)触发器设置为默认值,即。 e.失去焦点。这意味着仅在可能完全填写字段时才对其进行验证。所以当删除一
我有许多应用程序的内容页面,并最终为每个内容页面编写了很多 View 模型。例如。如果我有一个包含项目组的列表,我将有一个 ShowAllViewModel并绑定(bind)到内容页面和列表中单个项目
我有一个通用 View 和 4 个其他 View 。我在通用 View 中使用 Bootstrap 选项卡(导航选项卡)。我希望其他 4 个 View 成为通用 View 中 4 个选项卡的内容。由于
我希望针对 Maven 发布插件的不同目标有不同的配置选项。故事是这样的: 我正在将 Git 用于 SCM。我希望release:prepare插件在本地完成所有操作,并让release:perfor
我正在为一个项目使用AbstractTableModel制作一个自定义TableModel,并且我需要找到一种方法让复选框显示在某些行上,而不是其他行上。我已经实现了 getColumn 方法,但我希
摘自《Javascript 忍者的 secret 》一书: EVENTS ARE ASYNCHRONOUS Events, when they happen, can occur at unpredi
我正在尝试配置我的第一个 GWT 记录器,到目前为止,我已经将日志消息打印到我的 JS 控制台(FF 的 Firebug): 最终,我希望非SEVERE 消息转到consoleHa
我是一名优秀的程序员,十分优秀!