can do for you ❖ Composer puts packages per default to folder “vendor” ❖ API existing to write own plugins ➢ Hooks/Events for every part of composer ➢ Move packages from vendor folder to own destination ❖ Create own packages
T3 extensions in VCS? ❖ Just check them in, like any other code ➢ Standard extensions like realurl, powermail or dce ;-) are located in several repositories at the same time ➢ Probably in different versions ➢ Very costly to keep them up to date ➢ Extrem high redundancy
T3 extensions in VCS? ❖ Use SVN externals ➢ No redundancy anymore ➢ But not all extensions got a SVN repository ➢ So we had to create our own SVN repository for extensions we were using in several projects ▪ Also very costly, because each new extension or version of an extension needs to get imported to SVN
❖ Works with all VCS like Git, SVN or Mercurial ❖ Requirements: ➢ A composer.json file in root of your TYPO3 project ➢ Possibility to run composer (on server or locally) ❖ URL: http://composer.typo3.org
Repositories ➢ List of composer repositories (with T3 extensions) 2. Replace ➢ Optional. Disables download of TYPO3 itself 3. Require ➢ Defines which extensions should be included to your project. Underscores in extkeys become minus!
install ❖ Composer downloads all extensions ❖ Moves them from vendor/ to typo3conf/ext/ ➢ Because of hook which is also provided by TYPO3 Composer Repository ❖ vendor/ folder may get deleted manually
Bugtracker in forge (9 bugs, 3 features, 2 tasks open) ❖ Extensions with sysext dependencies fail ➢ Because the sysext is not located in repository ➢ gridelements is such an extension ➢ And all extensions based on gridelements (like t3ddy) ➢ Ticket in forge: 60950
your own Composer repo ❖ Composer repositories are also just JSON files ❖ Located under: domain.com/packages.json ❖ It contains packages ❖ and different versions for each package
❖ In .gitignore you should exclude some stuff: /composer.lock /composer.phar /vendor /vendor/** /typo3conf/ext/** !/typo3conf/ext/your_own_extension !/typo3conf/ext/your_own_extension/**
based on PHP ➢ Automated code checks: ▪ PhpLoc, Mass Detector, Code Sniffer, PhpUnit ➢ Composer support ▪ Execution after code checks ➢ Creation of deployable archives ➢ Report state of build back to Git GUI URL: https://www.phptesting.org/