For coders TYPO3 Tech Corner

Integrating extensions in TYPO3 via Composer and Github

Integrating extensions in TYPO3 via Composer and Github

Composer based installation

The most convenient solution is to have a private Packagist access. For our Early Access programme we offer this service as part of the full sponsorship (it is not included in the Freelancer programme). 

Private Packagist

Packagist serves as the official point of contact for Composer commands and can be easily set up. There are two steps to the process: 
You need to add the custom repository to composer.json and set up "authenticate" to access your packages. The example below shows the configuration for in2code's early access programme.

1. Add the custom repository to composer.json:

composer config repositories.private-packagist composer <a href="https://in2code.repo.packagist.com/yourName/" target="_blank" rel="noreferrer">in2code.repo.packagist.com/yourName/</a>

2. Store the authentication in your global composer auth.json with the following command:Store the authentication in your global composer auth.json with the following command:

composer config --global --auth http-basic.in2code.repo. packagist.com token XXXXXXXyourToken>XXXX

Integration via Github repository

An alternative is to use a local repository or to integrate the Github repository. To do this, add an entry "respositories" to the composer.json of the project.

Example: Github Femanager Early Access Repository:

"repositories": [  {    "type": "vcs",    "url": "https://github.com/in2code-pro/femanager.git"  } ],

In this way, the Github repository is also queried when you then require the appropriate extension via Composer (in this example the TYPO3 extension femanager).

Another alternative is to use a local Git repository. Here you check out the extension yourself in a directory and integrate it via Composer.

Example:

"repositories": [  {    "type": "path",    "url": "/packages/*"  } ],

If we stick to the example of the extension "femanager", it has to be cloned into the directory below /packages/. Afterwards, the extension can be installed with "composer require".

Classic TYPO3 installation

In the classic installation, the source code of the extensions is located below typo3conf/ext/. 

There are two similar approaches: Export the Github repository to the appropriate directory below typo3conf/ext/. Here, for example, the git export command can be used to fetch the repository without the metadata (inside .git).

The alternative is the Git checkout directly into the typo3conf/ext/ directory. Please note that this also includes the metadata under (.git).

Back

"Code faster, look at the time" - does this sound familiar to you?

How about time and respect for code quality? Working in a team? Automated tests?

Join us