Skip to content

Instantly share code, notes, and snippets.

@wdalmut
Created July 3, 2012 08:39
Show Gist options
  • Save wdalmut/3038518 to your computer and use it in GitHub Desktop.
Save wdalmut/3038518 to your computer and use it in GitHub Desktop.
Pimple getting started
vendor
composer.phar
log
.settings
.buildpath
.project
<?php
require_once __DIR__ . '/vendor/autoload.php';
$container = new Pimple();
$container["log_class_name"] = "\Zend\Log\Logger";
$container["log"] = $container->share(function($c) {
$logger = new $c["log_class_name"];
return $logger;
});
$log = $container["log"];
var_dump($log instanceof \Zend\Log\Logger);
var_dump($log === $container["log"]);
<?php
require_once __DIR__ . '/vendor/autoload.php';
$container = new Pimple();
$container["log_class_name"] = "\Zend\Log\Logger";
$container["log_writers"] = array(
"stream",
"syslog"
);
$container["log_writer_stream"] = function($c) {
return new \Zend\Log\Writer\Stream(__DIR__ . "/log");
};
$container["log_writer_syslog"] = function($c) {
return new \Zend\Log\Writer\Syslog(
array(
'application' => 'PimpleEg',
'facility' => LOG_SYSLOG
)
);
};
$container["log"] = $container->share(function($c) {
$logger = new $c["log_class_name"];
foreach ($c["log_writers"] as $writerName) {
$logger->addWriter($c["log_writer_{$writerName}"]);
}
return $logger;
});
$log = $container["log"];
$log2 = $container["log"];
var_dump($log === $log2);
$log->warn("OK");
<?php
require_once __DIR__ . '/vendor/autoload.php';
class Log extends Pimple
{
public function __construct()
{
$this["log_class_name"] = "\Zend\Log\Logger";
$this["log_writers"] = array(
"stream",
"syslog"
);
$this["log_writer_stream"] = function($c) {
return new \Zend\Log\Writer\Stream(__DIR__ . "/log");
};
$this["log_writer_syslog"] = function($c) {
return new \Zend\Log\Writer\Syslog(
array(
'application' => 'PimpleEg',
'facility' => LOG_USER
)
);
};
$this["log"] = $this->share(function($c) {
$logger = new $c["log_class_name"];
foreach ($c["log_writers"] as $writerName) {
$logger->addWriter($c["log_writer_{$writerName}"]);
}
return $logger;
});
}
public function get()
{
return $this["log"];
}
}
$l = new Log();
$logger = $l->get();
var_dump($logger === $l->get());
$logger->warn("Example 3");
{
"require" : {
"pimple/pimple": "*",
"zendframework/zendframework": "*"
}
}
{
"hash": "668451554b0f0b69931b9209a113fd3d",
"packages": [
{
"package": "pimple/pimple",
"version": "dev-master",
"alias-pretty-version": "1.0.x-dev",
"alias-version": "1.0.9999999.9999999-dev"
},
{
"package": "pimple/pimple",
"version": "dev-master",
"source-reference": "d2cfa2f02f50abef65c238747c753a5f6786f6be",
"commit-date": "1341139100"
},
{
"package": "zendframework/zendframework",
"version": "dev-master",
"alias-pretty-version": "2.0.x-dev",
"alias-version": "2.0.9999999.9999999-dev"
},
{
"package": "zendframework/zendframework",
"version": "dev-master",
"source-reference": "742f4817f81817b4f6291b18168324dffd3f92ad",
"commit-date": "1341265432"
}
],
"packages-dev": null,
"aliases": [
],
"minimum-stability": "dev",
"stability-flags": [
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment