Composer powered Koala Framework Dependencies

"Composer is a application-level dependency manager for the PHP programming language that provides a standard format for managing dependencies of PHP software and required libraries. It was developed by Nils Adermann and Jordi Boggiano, who continue to manage the project. They began development in April 2011 and first released it on March 1, 2012. Composer is strongly inspired by Node.js's "npm" and Ruby's "bundler""
(Source: Wikipedia)

Koala Framework will use composer starting with version 3.8. This is a huge step that completely changes how deployment is done.

So why are we switching to composer?

  • it's the de-facto standard for modern php development
  • it allows easy usage of any required external package that can be found on packagist.org
  • it allows updating libraries without huge effort
  • it replaces the huge, monolitic library repository

Using Composer

First, you need to install composer, follow the official instructions - on Linux I would run:

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

Now that composer is installed (and in your $PATH) you can start using it in any composer enabled project by changing working directory into the project and executing:

composer install

This will download and install all requirements to run the project into the vendor folder. This includes koala-framework itself which can now be found on the official composer package repository packagist.org

As Koala Framework does nothing unusual or special with composer refer to the composer documentation for further usage.

Deployment

One question remains though: how to deploy the vendor folder?

1. You can run composer install on the production server which automatically downloads all dependencies.

2. You can copy the locally generated vendor folder to the production server.

I would recommend (2) as that has less dependencies on the production server, you can even use it without shell access at all.

Koala Framework contains a simple script that creates an archive containing all required files to run a project (that is project code + vendor + build), start the following script to generate deploy.tar.gz:

./vendor/koala-framework/scripts/build-deploy-package
This entry was posted in Koala Framework by Niko Sams. Bookmark the permalink.

Leave a Reply

Your email address will not be published.

Github Activity

nsams starred symfony/symfony

Mar 24, 2017

nsams starred twigphp/Twig

Mar 24, 2017

nsams commented on issue koala-framework/koala-framework#520

Mar 24, 2017
@nsams

setTargetLanguage doesn't exist anymore but you can use Kwf_Trl::getInstance()->trl('Что-то', array(), 'en') instead

nsams commented on issue koala-framework/koala-framework#599

Mar 24, 2017
@nsams

The checked state of a checkbox is like the value of a textfield. It is loaded from the row the AutoForm is editing. When you create a new entry, t…

nsams opened pull request koala-framework/koala-framework#600

Mar 23, 2017
@nsams
PostRenderCutter: Don't comment out mask hide HTML
1 commit with 18 additions and 8 deletions