hn / typo3-bootstrap
typo3项目初始设置
Requires
- php: ^8.0
- ext-json: *
- causal/image_autoresize: ^2.1
- helhum/typo3-console: ^8
- hn/hn-templates: @dev
- hn/webpack-integration: ^4
- lochmueller/staticfilecache: ^13
- symfony/dotenv: ^5.3.0
- typo3/cms-belog: ^12
- typo3/cms-beuser: ^12
- typo3/cms-fluid-styled-content: ^12
- typo3/cms-form: ^12
- typo3/cms-info: ^12
- typo3/cms-recycler: ^12
- typo3/cms-redirects: ^12
- typo3/cms-reports: ^12
- typo3/cms-rte-ckeditor: ^12
- typo3/cms-scheduler: ^12
- typo3/cms-seo: ^12
- typo3/minimal: ^12
Requires (Dev)
- guzzlehttp/guzzle: ^7.3
- phpunit/phpunit: ^10
- roave/security-advisories: dev-latest
- symfony/process: ^5.3.0
- typo3/cms-adminpanel: ^12
- typo3/cms-lowlevel: ^12
- typo3/cms-tstemplate: ^12
- typo3/testing-framework: ^8
Conflicts
- typo3/cms: *
- dev-master
- dev-typo3v12BootstrapPackage
- dev-feature/typo3-12
- dev-feature/typo3-11
- dev-feature/typo3-v10
- dev-feature/database-init-command
- dev-feature/no-empty-json-ld-breadcrumb
- dev-update/staticfilecache
- dev-feature/advanced-cookie-consent-standalone
- dev-feature/advanced-cookie-concent
- dev-feature/content-security-policy
- dev-feature/ext-json
- dev-feature/advanced-loader
- dev-feature/parallel-pull
- dev-feature/no-provide-plugin
- dev-feature/time-zone
- dev-feature/testing
- dev-legacy/typo3-8
- dev-feature/frontend
This package is auto-updated.
Last update: 2024-08-31 10:20:09 UTC
README
这是hauptsache.net网站大多数TYPO3项目的基座,因此包含了一些针对我们和我们的托管服务的特定假设。然而:您仍然可能对查看设置TYPO3项目的一种可能方式感兴趣。
本地安装
在您想创建项目的文件夹中运行以下命令。
curl https://bitbucket.org/hauptsachenet/typo3-bootstrap/get/master.tar.gz|tar -xzs /^[a-z0-9\-]*//
make serve
设置项目
这是一个检查表,列出了在创建新项目时要执行的操作,假设源代码将在Bitbucket上,项目将在Mittwald上运行。其他设置也是可能的,但可能需要修改部署过程或(如果您不使用Bitbucket)则需要完全不同的部署配置。
- 首先创建一个Mittwald项目,因为它需要花费较长时间。使用默认选择的软件预设,并启用ssh。
- 使用kis.hosteurope.de创建域名(您可以在项目准备好之前从服务器获取IP地址)
- 创建一个bitbucket仓库(最好与Mittwald项目同名)
- 现在按照上面本地实例的安装步骤进行操作
- 在
bitbucket-pipelines.yml
和Makefile
中配置Mittwald用户ID - 确保将新生成的文件添加到您的git仓库中(composer.lock、yarn.lock和LocalConfiguration.php)
- Mittwald完成设置后,在bitbucket中启用流水线并生成ssh密钥。将公钥放在Mittwald服务器上。
- 创建数据库并将数据库移动到Mittwald,这次就一次完成
- 在Mittwald服务器上
html/{branch-name}
位置创建一个.env文件,内容如下所述。 - 在Mittwald中配置您的域名,使其指向
html/{branch-name}/current/web
。 - 将Let's Encrypt证书添加到域名。
- 现在您应该能够首次部署项目,但不要忘记下一步
- 添加调度程序cron作业(在Mittwald中,使用
php_cli
调用html/{branch-name}/vendor/bin/typo3cms
,参数为scheduler:run
) - 确保Mittwald性能加+已激活
.env文件
以下.env配置应在生产环境中使用
DATABASE_URL=mysqli://username:password@host:3306/database
但还有更多您可能感兴趣的内容
MAILER_URL=smtp://username:password@smtp.mailtrap.io:2525
IMAGEMAGICK_PATH=/usr/local/bin/
LOG_DEPRECATION=1
PLATFORM=docker
TYPO3_CONTEXT=Development
其中大部分都用于AdditionalConfiguration.php
中,请查看那里。
如何……
……处理docker并在本地启动项目
最简单的方法是使用包含的makefile
。要查看提供的命令,请运行make help
。这里只提供简要概述
make start
启动项目make stop
停止项目make cc
清除所有可用缓存并更新数据库模式make pull
获取当前生产数据库和fileadmin(您可能需要ssh凭证)make log
显示所有日志文件(除了php错误日志,因为TYPO3不接受stderr作为log_file,并覆盖它)
但是,如果您了解自己在做什么,并且是为了调试,可以直接使用docker。服务是通过docker-compose编排的。因此,docker-compose
命令是您的朋友。
本项目包含了运行它所需的几乎所有命令(除了make和docker)。这些命令位于bin
文件夹中。以下是最重要的几个:
bin/composer
运行docker化的composer版本来处理PHP依赖。bin/yarn
运行docker化的yarn版本来处理CSS/JS依赖。bin/typo3cms
运行helhum/typo3-console,用于缓存清除或一般命令的执行。
…处理扩展TypoScript
如果您包含其他扩展(您可能会的),您应该通过TypoScriptTemplateHook::addStaticInclude
添加它们的TypoScript(请参阅/web/typo3conf/ext/hn_templates/ext_localconf.php
)。您可以使用bin/typo3cms template:list
列出所有可用的包含项。
如果您想在后端编辑一些TypoScript常量,您需要设置所谓的扩展模板
。如果您打算使用它,不要忘记将typo3/cms-tstemplate
从/composer.json
中的require-dev
移动到常规的require
块中,以便在实时实例中可用。
…组织模板
我们使用正常的typo3目录结构,意味着模板组织在以下位置:
Resources/Private/Layouts
Resources/Private/Partials
Resources/Private/Templates
此外,我们尽可能使用BEM模式来命名和组织模板和部分。这意味着所有样式和脚本都与它们的模板相邻。
假设您想创建一个部分FancyHeadline.html
,您的目录结构将如下所示:
Resources/Private/Templates/Partials/FancyHeadline.html
Resources/Private/Templates/Partials/FancyHeadline.js
Resources/Private/Templates/Partials/FancyHeadline.scss
内容将如下所示:
<div class="fancy-headline">{content}</div>
import $ from 'jquery';
// i always recommend this initial loop setup.
// this way your partial is reusable but does not do anything if not used at all.
$('.fancy-headline').each(function () {
$(this).addClass('fancy-headline--fly-in');
});
.fancy-headline {
font-size: 20px;
transform: translateY(-20px);
transition: transform .2s;
&.fancy-headline--fly-in {
transform: translateY(0);
}
}
…处理资源如CSS/JS
我们使用webpack来处理CSS/JS输出。这允许我们使用强大的后处理工具,如autoprefixer和babel,并且它还避免了在使用TYPO3默认前端堆栈部署项目时的一些问题。
您需要知道的是,所有资源都是在名为webpack
的docker服务中使用webpack处理的。此服务在后台运行webpack-dev-server,并通过端口:5002
(默认)提供文件。更多信息可能可以通过webpack集成扩展获得。
如果您遇到CSS或JS文件无法传送到前端(或完全缺失)的问题,您应该检查webpack日志,无论是通过make log
还是docker-compose logs -f -n100 webpack
。
Webpack使用此项目的根目录中的webpack.config.js
文件进行配置。最重要的是,有入口点。默认情况下,包括web/typo3conf/ext/hn_templates/ext_index.js
。如果您创建了更多扩展,您还需要按加载顺序将您的扩展作为入口点添加。
此入口点文件简单地将所有scss和js文件包含在Resource/Private
文件夹中,但您可以根据需要添加更复杂的逻辑。
如果您想生成所有前端资源的生产构建,只需运行bin/yarn build
。然后您还可以通过打开url /build/report.html
查看您的js包有多重。