開発メモ

開発用のメモです。

Silex コンフィグを YAML で

{
    "repositories": [
        {
            "type": "pear",
            "url": "http://pear.php.net/"
        }
    ],
    "require": {
        "silex/silex": "~1.1",
        "symfony/browser-kit": "~2.3",
        "symfony/console": "~2.3",
        "symfony/config": "~2.3",
        "symfony/css-selector": "~2.3",
        "symfony/dom-crawler": "~2.3",
        "symfony/filesystem": "~2.3",
        "symfony/finder": "~2.3",
        "symfony/form": "~2.3",
        "symfony/locale": "~2.3",
        "symfony/process": "~2.3",
        "symfony/security": "~2.3",
        "symfony/serializer": "~2.3",
        "symfony/translation": "~2.3",
        "symfony/validator": "~2.3",
        "symfony/monolog-bridge": "~2.3",
        "symfony/twig-bridge": "~2.3",
        "doctrine/dbal": ">=2.2.0,<2.4.0-dev",
        "swiftmailer/swiftmailer": "5.*",
        
        "symfony/yaml": "~2.4"
    },
    "autoload": {
        "psr-0": {
            "TestApp": "src/"
        }
    }
}
<?php

namespace TestApp;

    class Application extends \Silex\Application {

        /**
        * @var TestApp\Application
        */
        var $app;

        public function __construct( ) {
            parent::__construct( );

            $app = &$this;

            // load config
            $app[ 'config' ] = $app->share( function( ) {
                return \Symfony\Component\Yaml\Yaml::parse( dirname( $_SERVER[ "CONTEXT_DOCUMENT_ROOT" ] ) . '/config/config.yml' );
            } );

            // twig 対応 start
            $app->register( new \Silex\Provider\TwigServiceProvider( ), array(
            // @formatter:off 
                'debug' => $app[ 'config' ]['debug'], 
                'twig.path' => array( 
                    dirname(__FILE__). '/Templates' ), 
                ) 
            // @formatter:on
            );
            // twig 対応 end

            # /*
            $app->mount( '', new Controller\Provider\HomeControllerProvider( ) );

        }

    }
Twitter: @asahina_alice