PHP: Installation of newest package version vs. update package

There is the little bit misleading composer command: composer update. It also allow to only update 1 to n packages with composer update package1 package2 (package names as arguments. Howevery, there is a constraint to be considered! composer update is updating the packages within the defined requirements – thus it is not updating the package.json!

If you want to install the newest package version, you must add the package as a new requirement with composer require. This way the newest (or older version if dependencies are blocking the newest) package will be used. composer install overwrites the package.json.

String comparison failure

Expected “this is a string for 2.000 €” is not equal to “this is a string for 2.000 €”

If you are writing tests and have string comparisons done, it can be sometimes tricky. Common problems are:

  • character encoding, eg. UTF-8 vs. ISO 8859-15
  • whitespace or non-visible (in your editor) characters at the end/beginning
  • non-breaking space characters, eg. in the example above between amount and currency

Automatic REST-API from Doctrine-Entities – Module evaluation

The times in web-development are over, that the backend side was allmighty and the frontend part was “pixel pushing” and fixing cross-browser issues. Today, modern applications are build in the client and the backend is just providing the data through an API. (And the backend still does the automatic background processes)

Given that I was looking for an existing module, which could create automatically the REST-endpoints for an existing databases, which was connected through Doctrine.

I had a rough look on three modules: stanlemon/rest-bundleR3VoLuT1OneR/doctrine-rest and oligus/jad.

Continue reading “Automatic REST-API from Doctrine-Entities – Module evaluation”

Customizable Software Architecture – Approaches overview

  • All in One and feature toggles
    • Challenges: if much customization is needed
  • Branching/Forking of whole product
    • Challenges: merging with main branch in post-delivery
  • Entity-Attribute-Value-Model (EAV) for database as addition
  • Plugin Architecture
    • Challenges: “Points of Customization” (aka Extension Points) in the main product
  • Extension Approach (inheritance)
    • Separation of main product and customer-specific

Continue reading “Customizable Software Architecture – Approaches overview”