Skip to content

Instantly share code, notes, and snippets.

@mnapoli
mnapoli / README.md
Last active December 8, 2016 14:42
Extended callables

PHP callables

Those are callables recognized by PHP natively. They can be invoked simply: $callable(...).

  • Closures: function () { ... }

  • Static method call: ['A', 'staticMethod'] or also Foo::staticMethod

    class A {

public static function staticMethod() { ... }

<?php
return [
'doctrine.orm.configuration' => [
'driver' => 'pdo_mysql',
'user' => 'root',
'password' => '',
'dbname' => get('doctrine.orm.db_name'),
],
@mnapoli
mnapoli / README.md
Last active August 29, 2015 14:23
Boot2docker on OS X

Boot2docker on OS X

Problems:

  • permissions
  • slow I/O because of vboxfs

Solution: mount the disk using NFS.

On OS X

Nouveau projet :

  • pour la boite : le projet appartient à la boite (c'est elle qui décide de la license)
  • perso : pas sur son temps de travail ;) (sauf si accord bien sur)

Si exception (par ex. la boite veut pas spécialement maintenir un projet) -> accord de la boite pour que tu bosse dessus et que le projet t'appartienne.

Contribution à un projet existant :

Toute contribution est soumise à la license du projet auquel on contribue. Donc si la boite est d'accord sur ce principe y'a pas de différence si c'est un projet perso ou 3rd party (Symfony, etc.).

@mnapoli
mnapoli / README.md
Last active August 29, 2015 14:18
PHP-DI object definitions
interface MoneyStorage {
}
class BankAccount implements MoneyStorage {
    public function __construct(Logger $logger, $account) ...
}
return [
@mnapoli
mnapoli / README.md
Last active August 29, 2015 14:18
Réflexions PHP-DI 5

PHP-DI 4

Dans la v4 on déclare un objet avec DI\object(). Automatiquement ça va étendre toute précédente définition, par exemple si on a plusieurs fichiers de config, mais surtout pour l'autowiring (ou les annotations si elles sont utilisées).

Du coup avec DI\object()->constructorParameter('paramName', 'the value') on peut "compléter" la définition autowiring sans avoir à redéclarer tous les paramètres qui sont déjà automatiquement résolus avec les type-hints.

PHP-DI 5

Dans la v5 il y'aura beaucoup plus de fonctionnalités orientées au applications modulaires, donc avec plein de fichiers de config qui peuvent se surcharger, etc. (comme les bundles Symfony)

@mnapoli
mnapoli / README.md
Last active August 29, 2015 14:18
Extending definitions in PHP-DI 5

Extending definitions in PHP-DI 5

Arrays

Extend: definition

  • DI\add()
// Declare an array
@mnapoli
mnapoli / gist:5e1361846ff1e93f8a96
Created February 3, 2015 09:23
PHPUnit + PHP-DI
<?php
use ...;
class GeneratingArgumentsTest extends \PHPUnit_Framework_TestCase
{
/**
* @var VariableArgumentCollectionFactory
* @Inject
*/
<?php
$factory = function () {
return new Foo();
}
$factory = function () use ($factory) {
$object = $factory();
$object->setOption('Hello');
<?php
interface Cache
{
public function get($id);
public function set($id, $value);
}