<?php $file = __DIR__ . '/container_test5.php'; if (file_exists($file)) { require_once $file; $container = new ProjectServiceContainer(); } else { $container = new Symfony\Component\DependencyInjection\ContainerBuilder(); $container->register('A', 'A'); $ref = [new Symfony\Component\DependencyInjection\Reference('A')]; $definition = new Symfony\Component\DependencyInjection\Definition('B', $ref); $definition->setScope('prototype'); $container->setDefinition('B', $definition); $container->compile(); $dumper = new Symfony\Component\DependencyInjection\Dumper\PhpDumper($container); file_put_contents($file, $dumper->dump()); } //trigger autoloader $a = $container->get('B'); unset($a); $t1 = microtime(true); for ($i = 0; $i < 10000; $i++) { $a = $container->get('B'); } $t2 = microtime(true); $results = ['time' => $t2 - $t1, 'files' => count(get_included_files()), 'memory' => memory_get_peak_usage() / 1024 / 1024]; echo json_encode($results);
public function testContainer() { $container = new \Symfony\Component\DependencyInjection\ContainerBuilder(); $container->register('test_service', 'TestService'); $this->assertInstanceOf('TestService', $container->get('test_service')); }
include_once '../vendor/autoload.php'; $certData = array(); $certData['passphrase'] = 'test1234'; $certData['certificate'] = file_get_contents('./cert/example.crt'); $certData['privatekey'] = file_get_contents('./cert/example.pem'); $container = new Symfony\Component\DependencyInjection\ContainerBuilder(); $container->setParameter('NameID', 'testNameId'); $container->setParameter('Issuer', 'http://saml.dev.wizkunde.nl/'); $container->setParameter('MetadataExpirationTime', 604800); $container->setParameter('SPReturnUrl', 'http://return.wizkunde.nl/'); $container->setParameter('ForceAuthn', 'true'); $container->setParameter('IsPassive', 'false'); $container->setParameter('NameIDFormat', 'testNameId'); $container->setParameter('ComparisonLevel', 'exact'); $container->register('twig_loader', 'Twig_Loader_Filesystem')->addArgument('../src/Wizkunde/SAMLBase/Template/Twig'); $container->register('twig', 'Twig_Environment')->addArgument(new Symfony\Component\DependencyInjection\Reference('twig_loader')); $container->register('SigningCertificate', 'Wizkunde\\SAMLBase\\Certificate')->addArgument($certData['privatekey'])->addArgument($certData['certificate'])->addArgument($certData['passphrase']); $container->register('EncryptionCertificate', 'Wizkunde\\SAMLBase\\Certificate')->addArgument($certData['privatekey'])->addArgument($certData['certificate'])->addArgument($certData['passphrase']); $container->register('encryption', 'Wizkunde\\SAMLBase\\Security\\Encryption')->addMethodCall('setCertificate', array(new Symfony\Component\DependencyInjection\Reference('EncryptionCertificate'))); $container->register('signature', 'Wizkunde\\SAMLBase\\Security\\Signature')->addMethodCall('setCertificate', array(new Symfony\Component\DependencyInjection\Reference('SigningCertificate'))); $container->register('unique_id_generator', 'Wizkunde\\SAMLBase\\Configuration\\UniqueID'); $container->register('timestamp_generator', 'Wizkunde\\SAMLBase\\Configuration\\Timestamp'); /** * Setup the Metadata resolve service */ $container->register('guzzle_http', 'Guzzle\\Http\\Client'); $container->register('resolver', 'Wizkunde\\SAMLBase\\Metadata\\ResolveService')->addArgument(new Symfony\Component\DependencyInjection\Reference('guzzle_http')); /** * Resolve the metadata */
<?php ini_set('display_errors', true); include_once '../vendor/autoload.php'; $container = new Symfony\Component\DependencyInjection\ContainerBuilder(); $container->register('twig_loader', 'Twig_Loader_Filesystem')->addArgument('../src/Wizkunde/SAMLBase/Template/Twig'); $container->register('twig', 'Twig_Environment')->addArgument(new Symfony\Component\DependencyInjection\Reference('twig_loader')); $container->register('guzzle_http', 'Guzzle\\Http\\Client'); $container->register('SigningCertificate', 'Wizkunde\\SAMLBase\\Certificate')->addMethodCall('setPassphrase', array('test1234'))->addMethodCall('setPublicKey', array('cert/example.crt', true))->addMethodCall('setPrivateKey', array('cert/example.pem', true)); $container->register('EncryptionCertificate', 'Wizkunde\\SAMLBase\\Certificate')->addMethodCall('setPassphrase', array('test1234'))->addMethodCall('setPublicKey', array('./cert/example.crt', true))->addMethodCall('setPrivateKey', array('./cert/example.pem', true)); $container->register('samlbase_idp_settings', 'Wizkunde\\SAMLBase\\Configuration\\Settings')->addMethodCall('setValues', array(array('NameID' => 'testNameId', 'Issuer' => 'http://saml.dev.wizkunde.nl/', 'MetadataExpirationTime' => 604800, 'SPReturnUrl' => 'http://return.wizkunde.nl/', 'ForceAuthn' => 'true', 'IsPassive' => 'false', 'NameIDFormat' => 'testNameId', 'ComparisonLevel' => 'exact', 'OptionalURLParameters' => array('source' => 'saml')))); $container->register('samlbase_encryption', 'Wizkunde\\SAMLBase\\Security\\Encryption')->addMethodCall('setCertificate', array(new Symfony\Component\DependencyInjection\Reference('EncryptionCertificate'))); $container->register('samlbase_signature', 'Wizkunde\\SAMLBase\\Security\\Signature')->addMethodCall('setCertificate', array(new Symfony\Component\DependencyInjection\Reference('SigningCertificate'))); $container->register('samlbase_unique_id_generator', 'Wizkunde\\SAMLBase\\Configuration\\UniqueID'); $container->register('samlbase_timestamp_generator', 'Wizkunde\\SAMLBase\\Configuration\\Timestamp'); /** * Setup the Metadata resolve service */ $container->register('resolver', 'Wizkunde\\SAMLBase\\Metadata\\ResolveService')->addArgument(new Symfony\Component\DependencyInjection\Reference('guzzle_http')); $container->register('samlbase_metadata', 'Wizkunde\\SAMLBase\\Metadata\\IDPMetadata'); /** * Resolve the metadata */ $metadata = $container->get('resolver')->resolve($container->get('samlbase_metadata'), 'http://idp.wizkunde.nl/simplesaml/saml2/idp/metadata.php'); // POST Binding $container->register('samlbase_binding_post', 'Wizkunde\\SAMLBase\\Binding\\Post')->addMethodCall('setMetadata', array($metadata))->addMethodCall('setTwigService', array(new Symfony\Component\DependencyInjection\Reference('twig')))->addMethodCall('setUniqueIdService', array(new Symfony\Component\DependencyInjection\Reference('samlbase_unique_id_generator')))->addMethodCall('setTimestampService', array(new Symfony\Component\DependencyInjection\Reference('samlbase_timestamp_generator')))->addMethodCall('setSignatureService', array(new Symfony\Component\DependencyInjection\Reference('samlbase_signature')))->addMethodCall('setHttpService', array(new Symfony\Component\DependencyInjection\Reference('guzzle_http'))); // OR Redirect Binding $container->register('samlbase_binding_redirect', 'Wizkunde\\SAMLBase\\Binding\\Redirect')->addMethodCall('setMetadata', array($metadata))->addMethodCall('setTwigService', array(new Symfony\Component\DependencyInjection\Reference('twig')))->addMethodCall('setUniqueIdService', array(new Symfony\Component\DependencyInjection\Reference('samlbase_unique_id_generator')))->addMethodCall('setTimestampService', array(new Symfony\Component\DependencyInjection\Reference('samlbase_timestamp_generator')))->addMethodCall('setSignatureService', array(new Symfony\Component\DependencyInjection\Reference('samlbase_signature')))->addMethodCall('setHttpService', array(new Symfony\Component\DependencyInjection\Reference('guzzle_http'))); $redirectUrl = $container->get('samlbase_binding_redirect')->setSettings($container->get('samlbase_idp_settings'))->request();
#!/usr/bin/php <?php $config = ['git_urls' => ['https://github.com/symfony/DependencyInjection.git' => 'sf_dependency_injection/'], 'autoload_config' => ['sf_dependency_injection/' => 'Symfony\\Component\\DependencyInjection'], 'example' => function () { $sc = new Symfony\Component\DependencyInjection\ContainerBuilder(); $sc->register('foo', '%foo.class%')->addArgument(new Symfony\Component\DependencyInjection\Reference('bar')); $sc->setParameter('foo.class', 'Foo'); var_dump($sc); }]; if ($return_config) { return $config; } require_once __DIR__ . '/_yf_autoloader.php'; new yf_autoloader($config);