This article is part of a series about my deployment workshop on the T3DD13. Make sure to read the other posts, too.
We all love the CLI, don’t we?
While administrating TYPO3 CMS instances, you quickly stumble over common tasks, like clearing the caches, you only able to do by open up a browser, login in the backend and do it there. This might be no problem for one single instance or small projects, but if you want to execute these tasks in a automated deployment, you need a new way to run them. You need a way to do it from the CLI.
There are some extensions, which address this issue and solve it for single tasks: For example EXT:cleartypo3cache provides a CLI command to clear the caches and EXT:t3deploy enables you to run a database compare from CLI, too.
When I started to think about automated deployments for TYPO3 CMS, the idea of EXT:coreapi raised up. How awesome, if i (as a developer) could do anything using the CLI instead of need to do it in the browser…
EXT:coreapi is supposed to provide an easy to use API for the „everything“ one might want to automate or just like do it from CLI, but is only able to do using the backend before. It abstracts the internal TYPO3 APIs, which might differ in major TYPO3 versions (4.5, 6.x, …). EXT:coreapi implements and offers service classes, which can be used in your own extension (e.g. to build a custom webservice). But most important, it provides commands to run from CLI, too.
Besides of the probably most needed „database compare“ and several „clear cache“ commands (clear all, clear pages cache, clear configuration cache) it offers commands to handle extensions (info, listInstalled, updateList from TER, fetch an extension from TER, import an extension, install / uninstall extension, create upload folders, configure extension).
It’s also planed to provide more commands/APIs, like
- managing backend users (list, create, update, delete)
- printing/output the page tree or sub trees
- a generic data API to list/create/update/delete any records by using the internal DataHandler (aka tcemain) of TYPO3
- run and check reports from the reports module
- list, get and set TYPO3 configurations (e.g. TYPO3CONFVARS)
- create database dumps (and excluding all caches tables and e.g. sys_log if you want)
- im-/export .t3d files
- output/analyze TypoScript for a certain page (like the Template Object Browser in the Backend)
During the workshop on the T3DD13 a small group formed and discussed, what’s missing and can be improved. You will find a protocol here.
EXT:coreapi is available on github and we collect and discuss the ideas, and feature requests there. Feel free to join the discussions in the issues on github and fork the project to solve some of the issues. I’m really looking forward to your pull requests.