drupal / core
Drupal 是一个开源的内容管理系统平台,为数百万人提供网站和应用。
Requires
- php: >=8.3.0
- composer-runtime-api: ^2.1
- ext-date: *
- ext-dom: *
- ext-filter: *
- ext-gd: *
- ext-hash: *
- ext-json: *
- ext-pcre: *
- ext-pdo: *
- ext-session: *
- ext-simplexml: *
- ext-spl: *
- ext-tokenizer: *
- ext-xml: *
- ext-zlib: *
- asm89/stack-cors: ^2.1
- composer/semver: ^3.3
- doctrine/annotations: ^2.0
- doctrine/lexer: ^2.0
- egulias/email-validator: ^3.2.1|^4.0
- guzzlehttp/guzzle: ^7.5
- guzzlehttp/psr7: ^2.4.5
- masterminds/html5: ^2.7
- mck89/peast: ^1.14
- pear/archive_tar: ^1.4.14
- psr/log: ^3.0
- sebastian/diff: ^4|^5
- symfony/console: ^7.1
- symfony/dependency-injection: ^7.1
- symfony/event-dispatcher: ^7.1
- symfony/filesystem: ^7.1
- symfony/finder: ^7.1
- symfony/http-foundation: ^7.1
- symfony/http-kernel: ^7.1
- symfony/mailer: ^7.1
- symfony/mime: ^7.1
- symfony/polyfill-iconv: ^1.26
- symfony/process: ^7.1
- symfony/psr-http-message-bridge: ^7.1
- symfony/routing: ^7.1
- symfony/serializer: ^7.1
- symfony/validator: ^7.1
- symfony/yaml: ^7.1
- twig/twig: ^3.14.0
Suggests
- ext-zip: Needed to extend the plugin.manager.archiver service capability with the handling of files in the ZIP format.
Conflicts
- drush/drush: <12.4.3
Replaces
- drupal/core-annotation: 11.0.4
- drupal/core-assertion: 11.0.4
- drupal/core-class-finder: 11.0.4
- drupal/core-datetime: 11.0.4
- drupal/core-dependency-injection: 11.0.4
- drupal/core-diff: 11.0.4
- drupal/core-discovery: 11.0.4
- drupal/core-event-dispatcher: 11.0.4
- drupal/core-file-cache: 11.0.4
- drupal/core-file-security: 11.0.4
- drupal/core-filesystem: 11.0.4
- drupal/core-front-matter: 11.0.4
- drupal/core-gettext: 11.0.4
- drupal/core-graph: 11.0.4
- drupal/core-http-foundation: 11.0.4
- drupal/core-php-storage: 11.0.4
- drupal/core-plugin: 11.0.4
- drupal/core-proxy-builder: 11.0.4
- drupal/core-render: 11.0.4
- drupal/core-serialization: 11.0.4
- drupal/core-transliteration: 11.0.4
- drupal/core-utility: 11.0.4
- drupal/core-uuid: 11.0.4
- drupal/core-version: 11.0.4
- 11.x-dev
- 11.0.x-dev
- 11.0.4
- 11.0.3
- 11.0.2
- 11.0.1
- 11.0.0
- 11.0.0-rc1
- 11.0.0-beta1
- 11.0.0-alpha1
- 10.4.x-dev
- 10.3.x-dev
- 10.3.5
- 10.3.4
- 10.3.3
- 10.3.2
- 10.3.1
- 10.3.0
- 10.3.0-rc1
- 10.3.0-beta1
- 10.2.x-dev
- 10.2.8
- 10.2.7
- 10.2.6
- 10.2.5
- 10.2.4
- 10.2.3
- 10.2.2
- 10.2.1
- 10.2.0
- 10.2.0-rc1
- 10.2.0-beta1
- 10.2.0-alpha1
- 10.1.x-dev
- 10.1.8
- 10.1.7
- 10.1.6
- 10.1.5
- 10.1.4
- 10.1.3
- 10.1.2
- 10.1.1
- 10.1.0
- 10.1.0-rc1
- 10.1.0-beta1
- 10.1.0-alpha1
- 10.0.x-dev
- 10.0.11
- 10.0.10
- 10.0.9
- 10.0.8
- 10.0.7
- 10.0.6
- 10.0.5
- 10.0.4
- 10.0.3
- 10.0.2
- 10.0.1
- 10.0.0
- 10.0.0-rc3
- 10.0.0-rc2
- 10.0.0-rc1
- 10.0.0-beta2
- 10.0.0-beta1
- 10.0.0-alpha7
- 10.0.0-alpha6
- 10.0.0-alpha5
- 10.0.0-alpha4
- 10.0.0-alpha3
- 10.0.0-alpha2
- 10.0.0-alpha1
- 9.5.x-dev
- 9.5.11
- 9.5.10
- 9.5.9
- 9.5.8
- 9.5.7
- 9.5.6
- 9.5.5
- 9.5.4
- 9.5.3
- 9.5.2
- 9.5.1
- 9.5.0
- 9.5.0-rc2
- 9.5.0-rc1
- 9.5.0-beta2
- 9.5.0-beta1
- 9.4.x-dev
- 9.4.15
- 9.4.14
- 9.4.13
- 9.4.12
- 9.4.11
- 9.4.10
- 9.4.9
- 9.4.8
- 9.4.7
- 9.4.6
- 9.4.5
- 9.4.4
- 9.4.3
- 9.4.2
- 9.4.1
- 9.4.0
- 9.4.0-rc2
- 9.4.0-rc1
- 9.4.0-beta1
- 9.4.0-alpha1
- 9.3.x-dev
- 9.3.22
- 9.3.21
- 9.3.20
- 9.3.19
- 9.3.18
- 9.3.17
- 9.3.16
- 9.3.15
- 9.3.14
- 9.3.13
- 9.3.12
- 9.3.11
- 9.3.10
- 9.3.9
- 9.3.8
- 9.3.7
- 9.3.6
- 9.3.5
- 9.3.4
- 9.3.3
- 9.3.2
- 9.3.1
- 9.3.0
- 9.3.0-rc1
- 9.3.0-beta3
- 9.3.0-beta2
- 9.3.0-beta1
- 9.3.0-alpha1
- 9.2.x-dev
- 9.2.21
- 9.2.20
- 9.2.19
- 9.2.18
- 9.2.17
- 9.2.16
- 9.2.15
- 9.2.14
- 9.2.13
- 9.2.12
- 9.2.11
- 9.2.10
- 9.2.9
- 9.2.8
- 9.2.7
- 9.2.6
- 9.2.5
- 9.2.4
- 9.2.3
- 9.2.2
- 9.2.1
- 9.2.0
- 9.2.0-rc1
- 9.2.0-beta3
- 9.2.0-beta2
- 9.2.0-beta1
- 9.2.0-alpha1
- 9.1.x-dev
- 9.1.15
- 9.1.14
- 9.1.13
- 9.1.12
- 9.1.11
- 9.1.10
- 9.1.9
- 9.1.8
- 9.1.7
- 9.1.6
- 9.1.5
- 9.1.4
- 9.1.3
- 9.1.2
- 9.1.1
- 9.1.0
- 9.1.0-rc3
- 9.1.0-rc2
- 9.1.0-rc1
- 9.1.0-beta1
- 9.1.0-alpha1
- 9.0.x-dev
- 9.0.14
- 9.0.13
- 9.0.12
- 9.0.11
- 9.0.10
- 9.0.9
- 9.0.8
- 9.0.7
- 9.0.6
- 9.0.5
- 9.0.4
- 9.0.3
- 9.0.2
- 9.0.1
- 9.0.0
- 9.0.0-rc1
- 9.0.0-beta3
- 9.0.0-beta2
- 9.0.0-beta1
- 9.0.0-alpha2
- 9.0.0-alpha1
- 8.9.x-dev
- 8.9.20
- 8.9.19
- 8.9.18
- 8.9.17
- 8.9.16
- 8.9.15
- 8.9.14
- 8.9.13
- 8.9.12
- 8.9.11
- 8.9.10
- 8.9.9
- 8.9.8
- 8.9.7
- 8.9.6
- 8.9.5
- 8.9.4
- 8.9.3
- 8.9.2
- 8.9.1
- 8.9.0
- 8.9.0-rc1
- 8.9.0-beta3
- 8.9.0-beta2
- 8.9.0-beta1
- 8.8.x-dev
- 8.8.12
- 8.8.11
- 8.8.10
- 8.8.9
- 8.8.8
- 8.8.7
- 8.8.6
- 8.8.5
- 8.8.4
- 8.8.3
- 8.8.2
- 8.8.1
- 8.8.0
- 8.8.0-rc1
- 8.8.0-beta1
- 8.8.0-alpha1
- 8.7.x-dev
- 8.7.14
- 8.7.13
- 8.7.12
- 8.7.11
- 8.7.10
- 8.7.9
- 8.7.8
- 8.7.7
- 8.7.6
- 8.7.5
- 8.7.4
- 8.7.3
- 8.7.2
- 8.7.1
- 8.7.0
- 8.7.0-rc1
- 8.7.0-beta2
- 8.7.0-beta1
- 8.7.0-alpha2
- 8.7.0-alpha1
- 8.6.18
- 8.6.17
- 8.6.16
- 8.6.15
- 8.6.14
- 8.6.13
- 8.6.12
- 8.6.11
- 8.6.10
- 8.6.9
- 8.6.8
- 8.6.7
- 8.6.6
- 8.6.5
- 8.6.4
- 8.6.3
- 8.6.2
- 8.6.1
- 8.6.0
- 8.6.0-rc1
- 8.6.0-beta2
- 8.6.0-beta1
- 8.6.0-alpha1
- 8.5.x-dev
- 8.5.15
- 8.5.14
- 8.5.13
- 8.5.12
- 8.5.11
- 8.5.10
- 8.5.9
- 8.5.8
- 8.5.7
- 8.5.6
- 8.5.5
- 8.5.4
- 8.5.3
- 8.5.2
- 8.5.1
- 8.5.0
- 8.5.0-rc1
- 8.5.0-beta1
- 8.5.0-alpha1
- 8.4.x-dev
- 8.4.8
- 8.4.7
- 8.4.6
- 8.4.5
- 8.4.4
- 8.4.3
- 8.4.2
- 8.4.1
- 8.4.0
- 8.4.0-rc2
- 8.4.0-rc1
- 8.4.0-beta1
- 8.4.0-alpha1
- 8.3.x-dev
- 8.3.9
- 8.3.8
- 8.3.7
- 8.3.6
- 8.3.5
- 8.3.4
- 8.3.3
- 8.3.2
- 8.3.1
- 8.3.0
- 8.3.0-rc2
- 8.3.0-rc1
- 8.3.0-beta1
- 8.3.0-alpha1
- 8.2.x-dev
- 8.2.8
- 8.2.7
- 8.2.6
- 8.2.5
- 8.2.4
- 8.2.3
- 8.2.2
- 8.2.1
- 8.2.0
- 8.2.0-rc2
- 8.2.0-rc1
- 8.2.0-beta3
- 8.2.0-beta2
- 8.2.0-beta1
- 8.1.x-dev
- 8.1.10
- 8.1.9
- 8.1.8
- 8.1.7
- 8.1.6
- 8.1.5
- 8.1.4
- 8.1.3
- 8.1.2
- 8.1.1
- 8.1.0
- 8.1.0-rc1
- 8.1.0-beta2
- 8.1.0-beta1
- 8.0.x-dev
- 8.0.6
- 8.0.5
- 8.0.4
- 8.0.3
- 8.0.2
- 8.0.1
- 8.0.0
- 8.0.0-rc4
- 8.0.0-rc3
- 8.0.0-rc2
- 8.0.0-rc1
- 8.0.0-beta16
- 8.0.0-beta15
- 8.0.0-beta14
- 8.0.0-beta13
- 8.0.0-beta12
- 8.0.0-beta11
- 8.0.0-beta10
- 8.0.0-beta9
- 8.0.0-beta8
- 8.0.0-beta7
- 8.0.0-beta6
This package is auto-updated.
Last update: 2024-09-21 08:38:37 UTC
README
这是一个 [Git subtree] (https://github.com/git/git/blob/master/contrib/subtree/git-subtree.txt),它将 [Drupal] (https://github.com/drupal/drupal) 8 的 core
目录分割出来,可以用来构建 Drupal 网站的目录结构,并且相较于将整个 Drupal 仓库拖入,它具有以下优势
- Drupal 网站的所有组件,包括 Drupal、贡献的模块和主题,以及外部库,都可以通过 [Composer] (https://getcomposer.org.cn) 拖入
- Drupal 和任何外部库都可以通过 Composer 引导(即不安装任何外部库的模块)
- 对
index.php
、.htaccess
、robots.txt
等文件有完全控制权,因为这些文件不会被 Drupal 核心更新覆盖
用法
将以下内容添加到您网站的 composer.json
{ "require": { "composer/installers": "^1.0.20", "drupal/drupal-core": "8.0.*" }, }
(此存储库可在 [Packagist] (https://packagist.org.cn/packages/drupal/core) 上找到,因此不需要明确指定此存储库的 URL。)
目录布局
这将下载 Drupal 的 core
目录到存储库的根目录。如果 Drupal 8 模块包含 composer.json
文件,它将被下载到 Drupal 期望的 modules
目录中。这与主题或安装配置类似。 (包不会放在 vendor
目录中是 composer/installers
包的功能,因此需要它。)
如果您想将 Drupal 核心或模块、主题或安装配置文件放在不同的目录中,您可以在 composer.json
的 "extra"
部分提供一个 "installer-paths"
配置指令。例如,要将整个 Drupal 网站放置在名为 web
的存储库子目录中,可以使用以下命令
{ "extra": { "installer-paths": { "web/core": ["type:drupal-core"], "web/modules": ["type:drupal-module"], "web/profiles": ["type:drupal-profile"], "web/themes": ["type:drupal-theme"] } } }
或者,要将模块放置在 modules
目录中的 contrib
子目录中,使用以下命令
{ "extra": { "installer-paths": { "modules/contrib": ["type:drupal-module"] } } }
网站模板
为了实际安装 Drupal,您需要将一些文件从上游 Drupal 仓库复制到您的存储库根目录。要操作 Drupal,需要复制 index.php
、sites/default/default.services.yml
和 sites/default/default.settings.php
文件,并且建议复制 .htaccess
或 web.config
以及 robots.txt
文件。其余文件可以按您的喜好复制。
您可以通过克隆上游 Drupal 仓库并手动复制文件,或者通过命令行直接获取这些文件来复制文件。例如
# Copy index.php from the upstream Drupal repository
wget https://raw.githubusercontent.com/drupal/drupal/8.0.x/index.php
查看我的[Drupal网站模板](https://github.com/tstoeckler/drupal-site-template),其中包含安装和运行Drupal所需的文件目录示例,包括上述的composer.json
文件。模板还包括下面详细说明的index.php
修改和drushrc.php
。请注意,此网站模板遵循最佳实践,将Drupal根目录放在存储库的子目录中,在这个特定情况下,称为web
。
Drupal的自动加载器
上游Drupal存储库包含所有Composer依赖项和core/vendor
目录中的Composer自动加载器。然而,此存储库的一个目的就是控制用于启动Drupal的自动加载器。如果你在composer.json
中拉入了额外的库,你将无法使用Drupal的硬编码自动加载器来自动加载它们。要为Drupal请求使用从你的composer.json
生成的自动加载器,只需在index.php
中更改以下行即可
$autoloader = require_once __DIR__ . '/core/vendor/autoload.php';
适当修改,例如
$autoloader = require_once __DIR__ . '/vendor/autoload.php';
修改install.php
(或authorize.php
或rebuild.php
)的方式相同,尽管这些文件位于core
目录中[遗憾的是](https://www.drupal.org/node/2406681),因此无法将这些文件的修改放入版本控制中。
Drush的Drupal自动加载器
在启动Drupal网站[Drush](https://github.com/drush-ops/drush)时,加载Drupal的自动加载器,并默认使用Drupal提供的自动加载器(core/vendor/autoload.php
)。这也违背了此存储库的目的,并可能导致使用从相同的composer.json
安装的本地Drush版本时出现致命错误。要使Drush使用从你的composer.json
生成的自动加载器,请使用来自网站的drushrc.php
的$new_autoloader
参数调用drush_drupal_load_autoloader()
。例如
// In drush/drushrc.php $autoloader = require __DIR__ . '/../../vendor/autoload.php'; drush_drupal_load_autoloader(NULL, $autoloader);
关于此存储库
此存储库包含Drupal core
子树分割,如上所述,在8.0.x
分支中镜像上游分支。master
分支包含此README.md
,一个空的composer.json
,这是此存储库与[Packagist](https://packagist.org.cn)一起工作的要求,以及用于维护子树分割的subtree-split
bash脚本(以及一个.gitignore
文件)。此存储库中的标签是各自上游标签的子树分割。
./subtree-split
的使用
初始化存储库
# Clone the repository git clone https://github.com/tstoeckler/drupal-core.git cd drupal-core # Initialize the upstream repository ./subtree-split init
更新存储库
./subtree-split fetch
发布分割存储库
# Publish the 8.0.x branch ./subtree-split push branch 8.0.x # Publish the 8.0.0-beta2 tag ./subtree-split push tag 8.0.0-beta2
配置
要使用不同的上游和下游存储库或不同的目录,请在此存储库的根目录中放置一个看起来像以下的subtree-split.config
文件
UPSTREAM_REPOSITORY=https://github.com/drupal/drupal UPSTREAM_DIRECTORY=upstream [email protected]:tstoeckler/drupal-core.git
默认情况下,DOWNSTREAM_REPOSITORY
变量从Git配置值remote.origin.url
中获取,因此不需要在分支此存储库时更改它。