infabo / typo3api
4.0.0-rc.7
2023-09-18 14:28 UTC
Requires
- php: ^8.1
- symfony/intl: ^5 || ^6
- symfony/options-resolver: ^5 || ^6
- symfony/polyfill-mbstring: ^1
- symfony/polyfill-php80: ^1.23.0
- typo3/cms-backend: ^11.5 || ^12.4
- typo3/cms-core: ^11.5 || ^12.4
- typo3/cms-extbase: ^11.5 || ^12.4
- typo3/cms-frontend: ^11.5 || ^12.4
- typo3/cms-install: ^11.5 || ^12.4
- typo3/cms-lang: ^11.5 || ^12.4
Requires (Dev)
- friendsoftypo3/phpstan-typo3: ^0.9.0
- ssch/typo3-rector: ^1.1
- symplify/easy-coding-standard: ^11
- typo3/testing-framework: ^6.16.6
- dev-master
- 4.0.0-rc.7
- 4.0.0-rc.6
- 4.0.0-rc.2
- 4.0.0-rc.1
- 3.2.12
- 3.2.11
- 3.2.10
- 3.2.9
- 3.2.8
- 3.2.7
- 3.2.6
- 3.2.5
- 3.2.4
- 3.2.3
- 3.2.2
- 3.2.1
- 3.2.0
- 3.1.1
- 3.1.0
- 3.0.2
- 3.0.1
- 3.0.0
- v2.0.1
- v2.0.0
- v2.0.0-RC1
- v1.3.0
- v1.2.0
- v1.1.10
- v1.1.9
- v1.1.8
- v1.1.7
- v1.1.6
- v1.1.5
- v1.1.4
- v1.1.3
- v1.1.2
- v1.1.1
- 1.1.0
- v1.0.2
- v1.0.1
- v1.0.0
- dev-feature/easy-inline-relation
- dev-v2-dev
This package is auto-updated.
Last update: 2024-09-18 16:51:34 UTC
README
简化TYPO3 TCA处理的API
本扩展抽象了一些在TYPO3中完成任务所需的数组配置。这将导致更快、更简单、更不令人烦恼的工作流程。
如何安装
使用composer require infabo/typo3api安装此扩展。对于未使用composer的用户:首先让项目使用composer。真的,这个扩展是为了简化你的工作流程,但是如果你仍然在使用非composer模式,你面临的工作流程问题可能更大。
如何使用
将你的TCA数组替换为Typo3Api\Builder\TableBuilder。
TableBuilder
在你的扩展中创建TCA文件,例如Configuration/TCA/tx_ext_person.php。然后,而不是返回TCA数组,你可以使用TableBuilder。
\Typo3Api\Builder\TableBuilder::create('tx_ext_person') ->configure(new \Typo3Api\Tca\LanguageConfiguration()) ->configure(new \Typo3Api\Tca\EnableColumnsConfiguration()) ->configure(new \Typo3Api\Tca\SortingConfiguration()) // configure cache clearing so you don't need to provide cache clear capabilities to your backend users ->configure(new \Typo3Api\Tca\CacheTagConfiguration('tx_ext_person_###UID###')) ->configure(new \Typo3Api\Tca\CacheTagConfiguration('tx_ext_person')) // the actual fields ->configure(new \Typo3Api\Tca\Field\InputField('first_name', ['required' => true, 'localize' => false])) ->configure(new \Typo3Api\Tca\Field\InputField('last_name', ['required' => true, 'localize' => false])) ->configure(new \Typo3Api\Tca\Field\DateField('birthday')) ->configure(new \Typo3Api\Tca\Field\EmailField('email')) ->configure(new \Typo3Api\Tca\Field\ImageField('image', ['cropVariants' => ['default' => ['1:1']]])) // easily allow multiple phone numbers ->configure(new \Typo3Api\Tca\Field\InlineRelationField('phone_numbers', [ 'foreign_table' => \Typo3Api\Builder\TableBuilder::create('tx_ext_person_phone') ->configure(new \Typo3Api\Tca\SortingConfiguration()) ->configure(new \Typo3Api\Tca\Field\SelectField('type', ['values' => ['business', 'private', 'other']])) ->configure(new \Typo3Api\Tca\Field\PhoneField('value')) ])) // use or create complex configurations and reuse them across tables ->configure(new \Typo3Api\Tca\Util\Address('Address')) // create new tabs (aka --div--) on the fly ->configureInTab('Notice', new \Typo3Api\Tca\Field\TextareaField('notice')) ;
就是这样。现在你可以开始使用tx_ext_person表了。
内容元素
要创建内容元素,请在Configuration/TCA/Override/tt_content.php中使用TableBuilder。
\Typo3Api\Builder\TableBuilder::create('tt_content', 'carousel') ->configure(new \Typo3Api\Tca\ContentElementConfiguration()) // add more fields as you like ;
或者有更多选项。
\Typo3Api\Builder\TableBuilder::create('tt_content', 'quote') ->configure(new \Typo3Api\Tca\ContentElementConfiguration([ 'name' => 'Quote element', 'description' => 'Tell what other peaple are saying', 'icon' => 'content-quote', 'headline' => 'hidden', // adds only the headline field ])) ;
运行单元测试
运行vendor/bin/phpunit