diff --git a/.dependencies b/.dependencies
new file mode 100644
index 000000000..1ecb50001
--- /dev/null
+++ b/.dependencies
@@ -0,0 +1,23 @@
+git:
+ problems:
+ url: git@github.com:getgrav/grav-plugin-problems.git
+ path: user/plugins/problems
+ branch: develop
+ error:
+ url: git@github.com:getgrav/grav-plugin-error.git
+ path: user/plugins/error
+ branch: develop
+ antimatter:
+ url: git@github.com:getgrav/grav-theme-antimatter.git
+ path: user/themes/antimatter
+ branch: develop
+links:
+ problems:
+ src: ../grav-plugin-problems
+ path: user/plugins/problems
+ error:
+ src: ../grav-plugin-error
+ path: user/plugins/error
+ antimatter:
+ src: ../grav-theme-antimatter
+ path: user/themes/antimatter
diff --git a/.gitignore b/.gitignore
index 480c6e574..31819ca2b 100755
--- a/.gitignore
+++ b/.gitignore
@@ -12,9 +12,6 @@ Thumbs.db
*.swp
# Grav Specific
-/cache
-/logs
-/images
/user/data/*
!/user/data/index.html
user/plugins/**/
diff --git a/bin/grav b/bin/grav
index dd922442e..05be1573e 100755
--- a/bin/grav
+++ b/bin/grav
@@ -15,7 +15,7 @@ if (!file_exists(ROOT_DIR . 'index.php')) {
$app = new Application('Grav CLI Application', '0.1.0');
$app->addCommands(array(
- new Grav\Console\InstallCommand(),
- new Grav\Console\PackageCommand(),
+ new Grav\Console\SetupCommand(),
+ new Grav\Console\CleanCommand(),
));
$app->run();
diff --git a/cache/.gitkeep b/cache/.gitkeep
new file mode 100644
index 000000000..e69de29bb
diff --git a/images/.gitkeep b/images/.gitkeep
new file mode 100644
index 000000000..e69de29bb
diff --git a/logs/.gitkeep b/logs/.gitkeep
new file mode 100644
index 000000000..e69de29bb
diff --git a/system/src/Grav/Console/PackageCommand.php b/system/src/Grav/Console/CleanCommand.php
similarity index 86%
rename from system/src/Grav/Console/PackageCommand.php
rename to system/src/Grav/Console/CleanCommand.php
index fded91ee9..7b995562f 100644
--- a/system/src/Grav/Console/PackageCommand.php
+++ b/system/src/Grav/Console/CleanCommand.php
@@ -8,20 +8,11 @@ use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Formatter\OutputFormatterStyle;
-class PackageCommand extends Command {
+class CleanCommand extends Command {
protected $destination_dir = 'distribution';
- protected $paths_to_create = [
- 'cache',
- 'logs',
- 'images',
- ];
-
protected $paths_to_remove = [
- 'cache',
- 'logs',
- 'images',
'user/plugins/email/vendor/swiftmailer/swiftmailer/.travis.yml',
'user/plugins/email/vendor/swiftmailer/swiftmailer/build.xml',
'user/plugins/email/vendor/swiftmailer/swiftmailer/composer.json',
@@ -96,15 +87,9 @@ class PackageCommand extends Command {
protected function configure() {
$this
- ->setName("package")
- ->setDescription("Handles packaging chores for Grav")
- ->addOption(
- 'clean',
- 'c',
- InputOption::VALUE_NONE,
- 'Clean out extra files in vendor folder'
- )
- ->setHelp('The package command does things and stuff');
+ ->setName("clean")
+ ->setDescription("Handles cl chores for Grav")
+ ->setHelp('The clean clean extraneous folders and data');
}
protected function execute(InputInterface $input, OutputInterface $output)
@@ -117,9 +102,8 @@ class PackageCommand extends Command {
$output->getFormatter()->setStyle('green', new OutputFormatterStyle('green'));
$output->getFormatter()->setStyle('magenta', new OutputFormatterStyle('magenta'));
- if ($input->getOption('clean')) {
- $this->cleanPaths($output);
- }
+ $this->cleanPaths($output);
+
}
@@ -129,25 +113,25 @@ class PackageCommand extends Command {
$output->writeln('');
$output->writeln('DELETING');
+ $anything = false;
+
foreach($this->paths_to_remove as $path) {
$path = ROOT_DIR . $path;
if (is_dir($path) && @$this->rrmdir($path)) {
+ $anything = true;
$output->writeln('dir: ' . $path);
} elseif (is_file($path) && @unlink($path)) {
+ $anything = true;
$output->writeln('file: ' . $path);
}
}
- $output->writeln('');
- $output->writeln('CREATING');
-
- foreach($this->paths_to_create as $path) {
- $path = ROOT_DIR . $path;
- if (@mkdir($path)) {
- $output->writeln('dir: ' . $path);
- }
+ if (!$anything) {
+ $output->writeln('');
+ $output->writeln('Nothing to clean...');
}
+
}
// Recursively Delete folder - DANGEROUS! USE WITH CARE!!!!
diff --git a/system/src/Grav/Console/InstallCommand.php b/system/src/Grav/Console/InstallCommand.php
deleted file mode 100644
index f3dd5ba0d..000000000
--- a/system/src/Grav/Console/InstallCommand.php
+++ /dev/null
@@ -1,283 +0,0 @@
- '/index.php',
- '/composer.json' => '/composer.json',
- '/bin' => '/bin',
- '/system' => '/system',
- '/vendor' => '/vendor',
- '/user/plugins/error' => '/user/plugins/error',
- '/user/plugins/problems' => '/user/plugins/problems',
- '/user/themes/antimatter' => '/user/themes/antimatter',
- );
-
- protected $default_file = "---\ntitle: HomePage\n---\n# HomePage\n\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque porttitor eu felis sed ornare. Sed a mauris venenatis, pulvinar velit vel, dictum enim. Phasellus ac rutrum velit. Nunc lorem purus, hendrerit sit amet augue aliquet, iaculis ultricies nisl. Suspendisse tincidunt euismod risus, quis feugiat arcu tincidunt eget. Nulla eros mi, commodo vel ipsum vel, aliquet congue odio. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Pellentesque velit orci, laoreet at adipiscing eu, interdum quis nibh. Nunc a accumsan purus.";
-
- protected $source;
- protected $destination;
-
- protected function configure()
- {
- $this
- ->setName('install')
- ->setDescription('Installs the base Grav system')
- ->addArgument(
- 'destination',
- InputArgument::REQUIRED,
- 'The destination directory to symlink into'
- )
- ->addOption(
- 'symlink',
- 's',
- InputOption::VALUE_NONE,
- 'Symlink the base grav system'
- )
- ->setHelp(<<install command help create a development environment that uses symbolic links to link the core of grav to the git cloned repository
-EOT
- );
- $this->source = getcwd();
- }
-
- protected function execute(InputInterface $input, OutputInterface $output)
- {
- $this->destination = $input->getArgument('destination');
-
- // Create a red output option
- $output->getFormatter()->setStyle('red', new OutputFormatterStyle('red'));
- $output->getFormatter()->setStyle('cyan', new OutputFormatterStyle('cyan'));
- $output->getFormatter()->setStyle('magenta', new OutputFormatterStyle('magenta'));
-
- // Symlink the Core Stuff
- if ($input->getOption('symlink')) {
- // Create Some core stuff if it doesn't exist
- $this->createDirectories($output);
-
- // Loop through the symlink mappings and create the symlinks
- $this->symlink($output);
-
- // Copy the Core STuff
- } else {
- $options = true;
- // Create Some core stuff if it doesn't exist
- $this->createDirectories($output);
-
- // Loop through the symlink mappings and copy what otherwise would be symlinks
- $this->copy($output);
- }
-
- $this->pages($output);
- $this->initFiles($output);
- $this->perms($output);
- }
-
- private function createDirectories($output)
- {
- $output->writeln('');
- $output->writeln('Creating Directories');
- $dirs_created = false;
-
- if (!file_exists($this->destination)) {
- mkdir($this->destination, 0777, true);
- }
-
- foreach ($this->directories as $dir) {
- if (!file_exists($this->destination . $dir)) {
- $dirs_created = true;
- $output->writeln(' ' . $dir . '');
- mkdir($this->destination . $dir, 0777, true);
- }
- }
-
- if (!$dirs_created) {
- $output->writeln(' Directories already exist');
- }
- }
-
- private function copy($output)
- {
- $output->writeln('');
- $output->writeln('Copying Files');
-
-
- foreach ($this->mappings as $source => $target) {
- if ((int) $source == $source) {
- $source = $target;
- }
-
- $from = $this->source . $source;
- $to = $this->destination . $target;
-
- $output->writeln(' ' . $source . ' -> ' . $to);
- $this->rcopy($from, $to);
- }
- }
-
- private function symlink($output)
- {
- $output->writeln('');
- $output->writeln('Resetting Symbolic Links');
-
-
- foreach ($this->mappings as $source => $target) {
- if ((int) $source == $source) {
- $source = $target;
- }
-
- $from = $this->source . $source;
- $to = $this->destination . $target;
-
- $output->writeln(' ' . $source . ' -> ' . $to);
- @unlink ($to);
- symlink ($from, $to);
- }
- }
-
- private function initFiles($output)
- {
- $this->check($output);
-
- $output->writeln('');
- $output->writeln('File Initializing');
- $files_init = false;
-
- // Copy files if they do not exist
- foreach ($this->files as $source => $target) {
- if ((int) $source == $source) {
- $source = $target;
- }
-
- $from = $this->source . $source;
- $to = $this->destination . $target;
-
- if (!file_exists($to)) {
- $files_init = true;
- copy($from, $to);
- $output->writeln(' '.$target.' -> Created');
- }
- }
-
- if (!$files_init) {
- $output->writeln(' Files already exist');
- }
-
-
- }
-
- private function pages($output)
- {
- $output->writeln('');
- $output->writeln('Pages Initializing');
-
- // get pages files and initialize if no pages exist
- $pages_dir = $this->destination . '/user/pages';
- $pages_files = array_diff(scandir($pages_dir), array('..', '.'));
-
- if (count($pages_files) == 0) {
- $destination = $this->source . '/user/pages';
- $this->rcopy($destination, $pages_dir);
- $output->writeln(' '.$destination.' -> Created');
-
- }
- }
-
- private function perms($output)
- {
- $output->writeln('');
- $output->writeln('Permisions Initializing');
-
- $dir_perms = 0755;
-
- // get pages files and initialize if no pages exist
- chmod($this->destination.'/bin/grav', $dir_perms);
- $output->writeln(' bin/grav permissions reset to '. decoct($dir_perms));
- }
-
-
- private function check($output)
- {
- $success = true;
-
- if (!file_exists($this->destination)) {
- $output->writeln(' file: $this->destination does not exist!');
- $success = false;
- }
-
- foreach ($this->directories as $dir) {
- if (!file_exists($this->destination . $dir)) {
- $output->writeln(' directory: ' . $dir . ' does not exist!');
- $success = false;
- }
- }
-
- foreach ($this->mappings as $target => $link) {
- if (!file_exists($this->destination . $target)) {
- $output->writeln(' mappings: ' . $target . ' does not exist!');
- $success = false;
- }
- }
- if (!$success) {
- $output->writeln('');
- $output->writeln('install should be run with --symlink|--s to symlink first');
- exit;
- }
- }
-
- private function rcopy($src, $dest){
-
- // If the src is not a directory do a simple file copy
- if(!is_dir($src)) {
- copy($src, $dest);
- return true;
- }
-
- // If the destination directory does not exist create it
- if(!is_dir($dest)) {
- if(!mkdir($dest)) {
- // If the destination directory could not be created stop processing
- return false;
- }
- }
-
- // Open the source directory to read in files
- $i = new \DirectoryIterator($src);
- foreach($i as $f) {
- if($f->isFile()) {
- copy($f->getRealPath(), "$dest/" . $f->getFilename());
- } else if(!$f->isDot() && $f->isDir()) {
- $this->rcopy($f->getRealPath(), "$dest/$f");
- }
- }
- }
-}
diff --git a/user/plugins/error b/user/plugins/error
new file mode 120000
index 000000000..12a26ca75
--- /dev/null
+++ b/user/plugins/error
@@ -0,0 +1 @@
+/Users/rhuk/Projects/github/grav-plugin-error
\ No newline at end of file
diff --git a/user/plugins/problems b/user/plugins/problems
new file mode 120000
index 000000000..45ce790a4
--- /dev/null
+++ b/user/plugins/problems
@@ -0,0 +1 @@
+/Users/rhuk/Projects/github/grav-plugin-problems
\ No newline at end of file
diff --git a/user/themes/antimatter b/user/themes/antimatter
new file mode 120000
index 000000000..4360261fa
--- /dev/null
+++ b/user/themes/antimatter
@@ -0,0 +1 @@
+/Users/rhuk/Projects/github/grav-theme-antimatter
\ No newline at end of file
diff --git a/vendor/autoload.php b/vendor/autoload.php
index 144615be8..ea5b2cb9a 100644
--- a/vendor/autoload.php
+++ b/vendor/autoload.php
@@ -4,4 +4,4 @@
require_once __DIR__ . '/composer' . '/autoload_real.php';
-return ComposerAutoloaderInitce64a487a9bcfc71e33f1f5e1fb002eb::getLoader();
+return ComposerAutoloaderInitcd548803417e916a9b8fece56bc99491::getLoader();
diff --git a/vendor/composer/autoload_files.php b/vendor/composer/autoload_files.php
index 1934c0aee..7ce7f5241 100644
--- a/vendor/composer/autoload_files.php
+++ b/vendor/composer/autoload_files.php
@@ -6,6 +6,6 @@ $vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
- $vendorDir . '/ircmaxell/password-compat/lib/password.php',
$vendorDir . '/tracy/tracy/src/shortcuts.php',
+ $vendorDir . '/ircmaxell/password-compat/lib/password.php',
);
diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php
index 6a2099910..4e0adf302 100644
--- a/vendor/composer/autoload_real.php
+++ b/vendor/composer/autoload_real.php
@@ -2,7 +2,7 @@
// autoload_real.php @generated by Composer
-class ComposerAutoloaderInitce64a487a9bcfc71e33f1f5e1fb002eb
+class ComposerAutoloaderInitcd548803417e916a9b8fece56bc99491
{
private static $loader;
@@ -19,9 +19,9 @@ class ComposerAutoloaderInitce64a487a9bcfc71e33f1f5e1fb002eb
return self::$loader;
}
- spl_autoload_register(array('ComposerAutoloaderInitce64a487a9bcfc71e33f1f5e1fb002eb', 'loadClassLoader'), true, true);
+ spl_autoload_register(array('ComposerAutoloaderInitcd548803417e916a9b8fece56bc99491', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
- spl_autoload_unregister(array('ComposerAutoloaderInitce64a487a9bcfc71e33f1f5e1fb002eb', 'loadClassLoader'));
+ spl_autoload_unregister(array('ComposerAutoloaderInitcd548803417e916a9b8fece56bc99491', 'loadClassLoader'));
$map = require __DIR__ . '/autoload_namespaces.php';
foreach ($map as $namespace => $path) {
@@ -42,14 +42,14 @@ class ComposerAutoloaderInitce64a487a9bcfc71e33f1f5e1fb002eb
$includeFiles = require __DIR__ . '/autoload_files.php';
foreach ($includeFiles as $file) {
- composerRequirece64a487a9bcfc71e33f1f5e1fb002eb($file);
+ composerRequirecd548803417e916a9b8fece56bc99491($file);
}
return $loader;
}
}
-function composerRequirece64a487a9bcfc71e33f1f5e1fb002eb($file)
+function composerRequirecd548803417e916a9b8fece56bc99491($file)
{
require $file;
}
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index bfc563c03..7aeff8f57 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -1,4 +1,45 @@
[
+ {
+ "name": "erusev/parsedown",
+ "version": "dev-master",
+ "version_normalized": "9999999-dev",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/erusev/parsedown.git",
+ "reference": "e33ac1c56ea591f21b9cf2fa74356ef708d4e130"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/erusev/parsedown/zipball/e33ac1c56ea591f21b9cf2fa74356ef708d4e130",
+ "reference": "e33ac1c56ea591f21b9cf2fa74356ef708d4e130",
+ "shasum": ""
+ },
+ "time": "2014-06-18 09:27:25",
+ "type": "library",
+ "installation-source": "source",
+ "autoload": {
+ "psr-0": {
+ "Parsedown": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Emanuil Rusev",
+ "email": "hello@erusev.com",
+ "homepage": "http://erusev.com"
+ }
+ ],
+ "description": "Parser for Markdown.",
+ "homepage": "http://parsedown.org",
+ "keywords": [
+ "markdown",
+ "parser"
+ ]
+ },
{
"name": "doctrine/cache",
"version": "dev-master",
@@ -6,12 +47,12 @@
"source": {
"type": "git",
"url": "https://github.com/doctrine/cache.git",
- "reference": "8f8810a67de1e45e1f471c5a93dbd829c4184975"
+ "reference": "72121e68265cd8b37f9b69778308251f6c5133e4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/cache/zipball/8f8810a67de1e45e1f471c5a93dbd829c4184975",
- "reference": "8f8810a67de1e45e1f471c5a93dbd829c4184975",
+ "url": "https://api.github.com/repos/doctrine/cache/zipball/72121e68265cd8b37f9b69778308251f6c5133e4",
+ "reference": "72121e68265cd8b37f9b69778308251f6c5133e4",
"shasum": ""
},
"require": {
@@ -24,7 +65,7 @@
"phpunit/phpunit": ">=3.7",
"satooshi/php-coveralls": "~0.6"
},
- "time": "2014-07-27 17:14:15",
+ "time": "2014-08-05 12:51:19",
"type": "library",
"extra": {
"branch-alias": {
@@ -70,240 +111,6 @@
"caching"
]
},
- {
- "name": "twig/twig",
- "version": "dev-master",
- "version_normalized": "9999999-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/fabpot/Twig.git",
- "reference": "72aa82b9a260b823325eec9b37bf6106a0137fb2"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/fabpot/Twig/zipball/72aa82b9a260b823325eec9b37bf6106a0137fb2",
- "reference": "72aa82b9a260b823325eec9b37bf6106a0137fb2",
- "shasum": ""
- },
- "require": {
- "php": ">=5.2.4"
- },
- "time": "2014-07-31 13:21:40",
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.16-dev"
- }
- },
- "installation-source": "source",
- "autoload": {
- "psr-0": {
- "Twig_": "lib/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com",
- "homepage": "http://fabien.potencier.org",
- "role": "Lead Developer"
- },
- {
- "name": "Armin Ronacher",
- "email": "armin.ronacher@active-4.com",
- "role": "Project Founder"
- },
- {
- "name": "Twig Team",
- "homepage": "https://github.com/fabpot/Twig/graphs/contributors",
- "role": "Contributors"
- }
- ],
- "description": "Twig, the flexible, fast, and secure template language for PHP",
- "homepage": "http://twig.sensiolabs.org",
- "keywords": [
- "templating"
- ]
- },
- {
- "name": "gregwar/cache",
- "version": "v1.0.9",
- "version_normalized": "1.0.9.0",
- "target-dir": "Gregwar/Cache",
- "source": {
- "type": "git",
- "url": "https://github.com/Gregwar/Cache.git",
- "reference": "514b9b469082028d094e33e4a059c863c546b14e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Gregwar/Cache/zipball/514b9b469082028d094e33e4a059c863c546b14e",
- "reference": "514b9b469082028d094e33e4a059c863c546b14e",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3"
- },
- "time": "2014-07-05 17:42:36",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "psr-0": {
- "Gregwar\\Cache": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Grégoire Passault",
- "email": "g.passault@gmail.com",
- "homepage": "http://www.gregwar.com/"
- }
- ],
- "description": "A lightweight file-system cache system",
- "keywords": [
- "cache",
- "caching",
- "file-system",
- "system"
- ]
- },
- {
- "name": "ircmaxell/password-compat",
- "version": "1.0.3",
- "version_normalized": "1.0.3.0",
- "source": {
- "type": "git",
- "url": "https://github.com/ircmaxell/password_compat.git",
- "reference": "1fc1521b5e9794ea77e4eca30717be9635f1d4f4"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/ircmaxell/password_compat/zipball/1fc1521b5e9794ea77e4eca30717be9635f1d4f4",
- "reference": "1fc1521b5e9794ea77e4eca30717be9635f1d4f4",
- "shasum": ""
- },
- "time": "2013-04-30 19:58:08",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "files": [
- "lib/password.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Anthony Ferrara",
- "email": "ircmaxell@ircmaxell.com",
- "homepage": "http://blog.ircmaxell.com"
- }
- ],
- "description": "A compatibility library for the proposed simplified password hashing algorithm: https://wiki.php.net/rfc/password_hash",
- "homepage": "https://github.com/ircmaxell/password_compat",
- "keywords": [
- "hashing",
- "password"
- ]
- },
- {
- "name": "gregwar/image",
- "version": "dev-master",
- "version_normalized": "9999999-dev",
- "target-dir": "Gregwar/Image",
- "source": {
- "type": "git",
- "url": "https://github.com/Gregwar/Image.git",
- "reference": "31cf30151015d66f320011ea8646e90bb62ffb13"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Gregwar/Image/zipball/31cf30151015d66f320011ea8646e90bb62ffb13",
- "reference": "31cf30151015d66f320011ea8646e90bb62ffb13",
- "shasum": ""
- },
- "require": {
- "ext-gd": "*",
- "gregwar/cache": "1.*",
- "php": ">=5.3.0"
- },
- "time": "2014-06-30 15:00:37",
- "type": "library",
- "installation-source": "source",
- "autoload": {
- "psr-0": {
- "Gregwar\\Image": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Grégoire Passault",
- "email": "g.passault@gmail.com",
- "homepage": "http://www.gregwar.com/"
- }
- ],
- "description": "Image handling",
- "homepage": "https://github.com/Gregwar/Image",
- "keywords": [
- "gd",
- "image"
- ]
- },
- {
- "name": "erusev/parsedown",
- "version": "dev-master",
- "version_normalized": "9999999-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/erusev/parsedown.git",
- "reference": "e33ac1c56ea591f21b9cf2fa74356ef708d4e130"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/erusev/parsedown/zipball/e33ac1c56ea591f21b9cf2fa74356ef708d4e130",
- "reference": "e33ac1c56ea591f21b9cf2fa74356ef708d4e130",
- "shasum": ""
- },
- "time": "2014-06-18 09:27:25",
- "type": "library",
- "installation-source": "source",
- "autoload": {
- "psr-0": {
- "Parsedown": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Emanuil Rusev",
- "email": "hello@erusev.com",
- "homepage": "http://erusev.com"
- }
- ],
- "description": "Parser for Markdown.",
- "homepage": "http://parsedown.org",
- "keywords": [
- "markdown",
- "parser"
- ]
- },
{
"name": "tracy/tracy",
"version": "dev-master",
@@ -365,6 +172,158 @@
"nette"
]
},
+ {
+ "name": "gregwar/cache",
+ "version": "v1.0.9",
+ "version_normalized": "1.0.9.0",
+ "target-dir": "Gregwar/Cache",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Gregwar/Cache.git",
+ "reference": "514b9b469082028d094e33e4a059c863c546b14e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Gregwar/Cache/zipball/514b9b469082028d094e33e4a059c863c546b14e",
+ "reference": "514b9b469082028d094e33e4a059c863c546b14e",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3"
+ },
+ "time": "2014-07-05 17:42:36",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "psr-0": {
+ "Gregwar\\Cache": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Grégoire Passault",
+ "email": "g.passault@gmail.com",
+ "homepage": "http://www.gregwar.com/"
+ }
+ ],
+ "description": "A lightweight file-system cache system",
+ "keywords": [
+ "cache",
+ "caching",
+ "file-system",
+ "system"
+ ]
+ },
+ {
+ "name": "gregwar/image",
+ "version": "dev-master",
+ "version_normalized": "9999999-dev",
+ "target-dir": "Gregwar/Image",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Gregwar/Image.git",
+ "reference": "31cf30151015d66f320011ea8646e90bb62ffb13"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Gregwar/Image/zipball/31cf30151015d66f320011ea8646e90bb62ffb13",
+ "reference": "31cf30151015d66f320011ea8646e90bb62ffb13",
+ "shasum": ""
+ },
+ "require": {
+ "ext-gd": "*",
+ "gregwar/cache": "1.*",
+ "php": ">=5.3.0"
+ },
+ "time": "2014-06-30 15:00:37",
+ "type": "library",
+ "installation-source": "source",
+ "autoload": {
+ "psr-0": {
+ "Gregwar\\Image": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Grégoire Passault",
+ "email": "g.passault@gmail.com",
+ "homepage": "http://www.gregwar.com/"
+ }
+ ],
+ "description": "Image handling",
+ "homepage": "https://github.com/Gregwar/Image",
+ "keywords": [
+ "gd",
+ "image"
+ ]
+ },
+ {
+ "name": "twig/twig",
+ "version": "dev-master",
+ "version_normalized": "9999999-dev",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/fabpot/Twig.git",
+ "reference": "e2d2a250d963dd5bba4ad23fc01c7282fc042946"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/fabpot/Twig/zipball/e2d2a250d963dd5bba4ad23fc01c7282fc042946",
+ "reference": "e2d2a250d963dd5bba4ad23fc01c7282fc042946",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.2.4"
+ },
+ "time": "2014-08-06 06:46:32",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.16-dev"
+ }
+ },
+ "installation-source": "source",
+ "autoload": {
+ "psr-0": {
+ "Twig_": "lib/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com",
+ "homepage": "http://fabien.potencier.org",
+ "role": "Lead Developer"
+ },
+ {
+ "name": "Armin Ronacher",
+ "email": "armin.ronacher@active-4.com",
+ "role": "Project Founder"
+ },
+ {
+ "name": "Twig Team",
+ "homepage": "https://github.com/fabpot/Twig/graphs/contributors",
+ "role": "Contributors"
+ }
+ ],
+ "description": "Twig, the flexible, fast, and secure template language for PHP",
+ "homepage": "http://twig.sensiolabs.org",
+ "keywords": [
+ "templating"
+ ]
+ },
{
"name": "symfony/yaml",
"version": "2.5.x-dev",
@@ -373,18 +332,18 @@
"source": {
"type": "git",
"url": "https://github.com/symfony/Yaml.git",
- "reference": "f868ecdbcc0276b6158dfbf08b9e98ce07f014e1"
+ "reference": "5a75366ae9ca8b4792cd0083e4ca4dff9fe96f1f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/Yaml/zipball/f868ecdbcc0276b6158dfbf08b9e98ce07f014e1",
- "reference": "f868ecdbcc0276b6158dfbf08b9e98ce07f014e1",
+ "url": "https://api.github.com/repos/symfony/Yaml/zipball/5a75366ae9ca8b4792cd0083e4ca4dff9fe96f1f",
+ "reference": "5a75366ae9ca8b4792cd0083e4ca4dff9fe96f1f",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
- "time": "2014-07-09 09:05:48",
+ "time": "2014-08-05 09:00:40",
"type": "library",
"extra": {
"branch-alias": {
@@ -402,15 +361,13 @@
"MIT"
],
"authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com",
- "homepage": "http://fabien.potencier.org",
- "role": "Lead Developer"
- },
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
+ },
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
}
],
"description": "Symfony Yaml Component",
@@ -424,12 +381,12 @@
"source": {
"type": "git",
"url": "https://github.com/symfony/Console.git",
- "reference": "fae03eba0b01d2a45f35080de50096ebb1901475"
+ "reference": "cd2d1e4bac2206b337326b0140ff475fe9ad5f63"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/Console/zipball/fae03eba0b01d2a45f35080de50096ebb1901475",
- "reference": "fae03eba0b01d2a45f35080de50096ebb1901475",
+ "url": "https://api.github.com/repos/symfony/Console/zipball/cd2d1e4bac2206b337326b0140ff475fe9ad5f63",
+ "reference": "cd2d1e4bac2206b337326b0140ff475fe9ad5f63",
"shasum": ""
},
"require": {
@@ -443,7 +400,7 @@
"psr/log": "For using the console logger",
"symfony/event-dispatcher": ""
},
- "time": "2014-07-29 11:56:02",
+ "time": "2014-08-05 09:00:40",
"type": "library",
"extra": {
"branch-alias": {
@@ -472,5 +429,46 @@
],
"description": "Symfony Console Component",
"homepage": "http://symfony.com"
+ },
+ {
+ "name": "ircmaxell/password-compat",
+ "version": "1.0.3",
+ "version_normalized": "1.0.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ircmaxell/password_compat.git",
+ "reference": "1fc1521b5e9794ea77e4eca30717be9635f1d4f4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ircmaxell/password_compat/zipball/1fc1521b5e9794ea77e4eca30717be9635f1d4f4",
+ "reference": "1fc1521b5e9794ea77e4eca30717be9635f1d4f4",
+ "shasum": ""
+ },
+ "time": "2013-04-30 19:58:08",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "files": [
+ "lib/password.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Anthony Ferrara",
+ "email": "ircmaxell@ircmaxell.com",
+ "homepage": "http://blog.ircmaxell.com"
+ }
+ ],
+ "description": "A compatibility library for the proposed simplified password hashing algorithm: https://wiki.php.net/rfc/password_hash",
+ "homepage": "https://github.com/ircmaxell/password_compat",
+ "keywords": [
+ "hashing",
+ "password"
+ ]
}
]
diff --git a/vendor/doctrine/cache/lib/Doctrine/Common/Cache/FilesystemCache.php b/vendor/doctrine/cache/lib/Doctrine/Common/Cache/FilesystemCache.php
index 23aaa37bd..07eda8e87 100644
--- a/vendor/doctrine/cache/lib/Doctrine/Common/Cache/FilesystemCache.php
+++ b/vendor/doctrine/cache/lib/Doctrine/Common/Cache/FilesystemCache.php
@@ -105,9 +105,21 @@ class FilesystemCache extends FileCache
$filepath = pathinfo($filename, PATHINFO_DIRNAME);
if ( ! is_dir($filepath)) {
- mkdir($filepath, 0777, true);
+ if (false === @mkdir($filepath, 0777, true) && !is_dir($filepath)) {
+ return false;
+ }
+ } elseif ( ! is_writable($filepath)) {
+ return false;
}
- return file_put_contents($filename, $lifeTime . PHP_EOL . $data) !== false;
+ $tmpFile = tempnam($filepath, basename($filename));
+
+ if ((file_put_contents($tmpFile, $lifeTime . PHP_EOL . $data) !== false) && @rename($tmpFile, $filename)) {
+ @chmod($filename, 0666 & ~umask());
+
+ return true;
+ }
+
+ return false;
}
}
diff --git a/vendor/erusev/parsedown/Parsedown.php b/vendor/erusev/parsedown/Parsedown.php
old mode 100644
new mode 100755
diff --git a/vendor/symfony/console/Symfony/Component/Console/Application.php b/vendor/symfony/console/Symfony/Component/Console/Application.php
index 41d8f93bb..c4154fc93 100644
--- a/vendor/symfony/console/Symfony/Component/Console/Application.php
+++ b/vendor/symfony/console/Symfony/Component/Console/Application.php
@@ -874,6 +874,8 @@ class Application
* @param OutputInterface $output An Output instance
*
* @return int 0 if everything went fine, or an error code
+ *
+ * @throws \Exception when the command being run threw an exception
*/
protected function doRunCommand(Command $command, InputInterface $input, OutputInterface $output)
{
diff --git a/vendor/symfony/console/Symfony/Component/Console/Helper/DescriptorHelper.php b/vendor/symfony/console/Symfony/Component/Console/Helper/DescriptorHelper.php
index 932dd0f29..d58e0bf14 100644
--- a/vendor/symfony/console/Symfony/Component/Console/Helper/DescriptorHelper.php
+++ b/vendor/symfony/console/Symfony/Component/Console/Helper/DescriptorHelper.php
@@ -54,7 +54,7 @@ class DescriptorHelper extends Helper
* @param object $object
* @param array $options
*
- * @throws \InvalidArgumentException
+ * @throws \InvalidArgumentException when the given format is not supported
*/
public function describe(OutputInterface $output, $object, array $options = array())
{
diff --git a/vendor/symfony/console/Symfony/Component/Console/Helper/DialogHelper.php b/vendor/symfony/console/Symfony/Component/Console/Helper/DialogHelper.php
index 1ce4192df..0362dd4d1 100644
--- a/vendor/symfony/console/Symfony/Component/Console/Helper/DialogHelper.php
+++ b/vendor/symfony/console/Symfony/Component/Console/Helper/DialogHelper.php
@@ -328,7 +328,7 @@ class DialogHelper extends InputAwareHelper
* @param OutputInterface $output An Output instance
* @param string|array $question The question to ask
* @param callable $validator A PHP callback
- * @param int $attempts Max number of times to ask before giving up (false by default, which means infinite)
+ * @param int|false $attempts Max number of times to ask before giving up (false by default, which means infinite)
* @param string $default The default answer if none is given by the user
* @param array $autocomplete List of values to autocomplete
*
@@ -357,7 +357,7 @@ class DialogHelper extends InputAwareHelper
* @param OutputInterface $output An Output instance
* @param string|array $question The question to ask
* @param callable $validator A PHP callback
- * @param int $attempts Max number of times to ask before giving up (false by default, which means infinite)
+ * @param int|false $attempts Max number of times to ask before giving up (false by default, which means infinite)
* @param bool $fallback In case the response can not be hidden, whether to fallback on non-hidden question or not
*
* @return string The response
@@ -451,7 +451,7 @@ class DialogHelper extends InputAwareHelper
* @param callable $interviewer A callable that will ask for a question and return the result
* @param OutputInterface $output An Output instance
* @param callable $validator A PHP callback
- * @param int $attempts Max number of times to ask before giving up ; false will ask infinitely
+ * @param int|false $attempts Max number of times to ask before giving up ; false will ask infinitely
*
* @return string The validated response
*
diff --git a/vendor/symfony/console/Symfony/Component/Console/Helper/TableHelper.php b/vendor/symfony/console/Symfony/Component/Console/Helper/TableHelper.php
index 76b5a08ae..eeb670e88 100644
--- a/vendor/symfony/console/Symfony/Component/Console/Helper/TableHelper.php
+++ b/vendor/symfony/console/Symfony/Component/Console/Helper/TableHelper.php
@@ -44,6 +44,8 @@ class TableHelper extends Helper
* @param int $layout self::LAYOUT_*
*
* @return TableHelper
+ *
+ * @throws InvalidArgumentException when the table layout is not known
*/
public function setLayout($layout)
{
diff --git a/vendor/symfony/yaml/Symfony/Component/Yaml/Inline.php b/vendor/symfony/yaml/Symfony/Component/Yaml/Inline.php
index 2242d12c7..461d60562 100644
--- a/vendor/symfony/yaml/Symfony/Component/Yaml/Inline.php
+++ b/vendor/symfony/yaml/Symfony/Component/Yaml/Inline.php
@@ -402,6 +402,8 @@ class Inline
* @param string $scalar
*
* @return string A YAML string
+ *
+ * @throws ParseException when object parsing support was disabled and the parser detected a PHP object
*/
private static function evaluateScalar($scalar)
{
diff --git a/vendor/twig/twig/CHANGELOG b/vendor/twig/twig/CHANGELOG
index 76c4e1f1b..eda73110c 100644
--- a/vendor/twig/twig/CHANGELOG
+++ b/vendor/twig/twig/CHANGELOG
@@ -1,6 +1,7 @@
* 1.16.1 (2014-XX-XX)
- * n/a
+ * fixed for mb function overload mb_substr acting different
+ * fixed the attribute() function when passing a variable for the arguments
* 1.16.0 (2014-07-05)
diff --git a/vendor/twig/twig/lib/Twig/Compiler.php b/vendor/twig/twig/lib/Twig/Compiler.php
index 1796e40a7..2a492b7dd 100644
--- a/vendor/twig/twig/lib/Twig/Compiler.php
+++ b/vendor/twig/twig/lib/Twig/Compiler.php
@@ -267,4 +267,9 @@ class Twig_Compiler implements Twig_CompilerInterface
return $this;
}
+
+ public function getVarName()
+ {
+ return sprintf('__internal_%s', hash('sha256', uniqid(mt_rand(), true), false));
+ }
}
diff --git a/vendor/twig/twig/lib/Twig/ExpressionParser.php b/vendor/twig/twig/lib/Twig/ExpressionParser.php
index 01594f710..f685bad8e 100644
--- a/vendor/twig/twig/lib/Twig/ExpressionParser.php
+++ b/vendor/twig/twig/lib/Twig/ExpressionParser.php
@@ -318,7 +318,7 @@ class Twig_ExpressionParser
throw new Twig_Error_Syntax('The "attribute" function takes at least two arguments (the variable and the attributes)', $line, $this->parser->getFilename());
}
- return new Twig_Node_Expression_GetAttr($args->getNode(0), $args->getNode(1), count($args) > 2 ? $args->getNode(2) : new Twig_Node_Expression_Array(array(), $line), Twig_Template::ANY_CALL, $line);
+ return new Twig_Node_Expression_GetAttr($args->getNode(0), $args->getNode(1), count($args) > 2 ? $args->getNode(2) : null, Twig_Template::ANY_CALL, $line);
default:
if (null !== $alias = $this->parser->getImportedSymbol('function', $name)) {
$arguments = new Twig_Node_Expression_Array(array(), $line);
diff --git a/vendor/twig/twig/lib/Twig/Extension/Core.php b/vendor/twig/twig/lib/Twig/Extension/Core.php
index 3092eb8b3..ef3657698 100644
--- a/vendor/twig/twig/lib/Twig/Extension/Core.php
+++ b/vendor/twig/twig/lib/Twig/Extension/Core.php
@@ -944,7 +944,7 @@ function twig_escape_filter(Twig_Environment $env, $string, $strategy = 'html',
static $htmlspecialcharsCharsets;
if (null === $htmlspecialcharsCharsets) {
- if ('hiphop' === substr(PHP_VERSION, -6)) {
+ if (defined('HHVM_VERSION')) {
$htmlspecialcharsCharsets = array('utf-8' => true, 'UTF-8' => true);
} else {
$htmlspecialcharsCharsets = array(
diff --git a/vendor/twig/twig/lib/Twig/Node/Expression/Binary/EndsWith.php b/vendor/twig/twig/lib/Twig/Node/Expression/Binary/EndsWith.php
index 5de6c72d2..93b3b96f0 100644
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Binary/EndsWith.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Binary/EndsWith.php
@@ -12,14 +12,14 @@ class Twig_Node_Expression_Binary_EndsWith extends Twig_Node_Expression_Binary
{
public function compile(Twig_Compiler $compiler)
{
+ $left = $compiler->getVarName();
+ $right = $compiler->getVarName();
$compiler
- ->raw('(0 === substr_compare(')
+ ->raw(sprintf('(is_string($%s = ', $left))
->subcompile($this->getNode('left'))
- ->raw(', ')
+ ->raw(sprintf(') && is_string($%s = ', $right))
->subcompile($this->getNode('right'))
- ->raw(', -strlen(')
- ->subcompile($this->getNode('right'))
- ->raw(')))')
+ ->raw(sprintf(') && (\'\' === $%2$s || $%2$s === substr($%1$s, -strlen($%2$s))))', $left, $right))
;
}
diff --git a/vendor/twig/twig/lib/Twig/Node/Expression/Binary/StartsWith.php b/vendor/twig/twig/lib/Twig/Node/Expression/Binary/StartsWith.php
index eb8c107cb..d2e30d66e 100644
--- a/vendor/twig/twig/lib/Twig/Node/Expression/Binary/StartsWith.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/Binary/StartsWith.php
@@ -12,12 +12,14 @@ class Twig_Node_Expression_Binary_StartsWith extends Twig_Node_Expression_Binary
{
public function compile(Twig_Compiler $compiler)
{
+ $left = $compiler->getVarName();
+ $right = $compiler->getVarName();
$compiler
- ->raw('(0 === strpos(')
+ ->raw(sprintf('(is_string($%s = ', $left))
->subcompile($this->getNode('left'))
- ->raw(', ')
+ ->raw(sprintf(') && is_string($%s = ', $right))
->subcompile($this->getNode('right'))
- ->raw('))')
+ ->raw(sprintf(') && (\'\' === $%2$s || 0 === strpos($%1$s, $%2$s)))', $left, $right))
;
}
diff --git a/vendor/twig/twig/lib/Twig/Node/Expression/GetAttr.php b/vendor/twig/twig/lib/Twig/Node/Expression/GetAttr.php
index 55d9fcc32..6ce61111c 100644
--- a/vendor/twig/twig/lib/Twig/Node/Expression/GetAttr.php
+++ b/vendor/twig/twig/lib/Twig/Node/Expression/GetAttr.php
@@ -11,7 +11,7 @@
*/
class Twig_Node_Expression_GetAttr extends Twig_Node_Expression
{
- public function __construct(Twig_Node_Expression $node, Twig_Node_Expression $attribute, Twig_Node_Expression_Array $arguments, $type, $lineno)
+ public function __construct(Twig_Node_Expression $node, Twig_Node_Expression $attribute, Twig_Node_Expression $arguments = null, $type, $lineno)
{
parent::__construct(array('node' => $node, 'attribute' => $attribute, 'arguments' => $arguments), array('type' => $type, 'is_defined_test' => false, 'ignore_strict_check' => false, 'disable_c_ext' => false), $lineno);
}
@@ -32,20 +32,30 @@ class Twig_Node_Expression_GetAttr extends Twig_Node_Expression
$compiler->raw(', ')->subcompile($this->getNode('attribute'));
- if (count($this->getNode('arguments')) || Twig_Template::ANY_CALL !== $this->getAttribute('type') || $this->getAttribute('is_defined_test') || $this->getAttribute('ignore_strict_check')) {
- $compiler->raw(', ')->subcompile($this->getNode('arguments'));
+ // only generate optional arguments when needed (to make generated code more readable)
+ $needFourth = $this->getAttribute('ignore_strict_check');
+ $needThird = $needFourth || $this->getAttribute('is_defined_test');
+ $needSecond = $needThird || Twig_Template::ANY_CALL !== $this->getAttribute('type');
+ $needFirst = $needSecond || null !== $this->getNode('arguments');
- if (Twig_Template::ANY_CALL !== $this->getAttribute('type') || $this->getAttribute('is_defined_test') || $this->getAttribute('ignore_strict_check')) {
- $compiler->raw(', ')->repr($this->getAttribute('type'));
+ if ($needFirst) {
+ if (null !== $this->getNode('arguments')) {
+ $compiler->raw(', ')->subcompile($this->getNode('arguments'));
+ } else {
+ $compiler->raw(', array()');
}
+ }
- if ($this->getAttribute('is_defined_test') || $this->getAttribute('ignore_strict_check')) {
- $compiler->raw(', '.($this->getAttribute('is_defined_test') ? 'true' : 'false'));
- }
+ if ($needSecond) {
+ $compiler->raw(', ')->repr($this->getAttribute('type'));
+ }
- if ($this->getAttribute('ignore_strict_check')) {
- $compiler->raw(', '.($this->getAttribute('ignore_strict_check') ? 'true' : 'false'));
- }
+ if ($needThird) {
+ $compiler->raw(', ')->repr($this->getAttribute('is_defined_test'));
+ }
+
+ if ($needFourth) {
+ $compiler->raw(', ')->repr($this->getAttribute('ignore_strict_check'));
}
$compiler->raw(')');
diff --git a/vendor/twig/twig/lib/Twig/Template.php b/vendor/twig/twig/lib/Twig/Template.php
index 1e23e8b4f..63910dacc 100644
--- a/vendor/twig/twig/lib/Twig/Template.php
+++ b/vendor/twig/twig/lib/Twig/Template.php
@@ -379,7 +379,11 @@ abstract class Twig_Template implements Twig_TemplateInterface
} elseif (is_object($object)) {
$message = sprintf('Impossible to access a key "%s" on an object of class "%s" that does not implement ArrayAccess interface', $item, get_class($object));
} elseif (is_array($object)) {
- $message = sprintf('Key "%s" for array with keys "%s" does not exist', $arrayItem, implode(', ', array_keys($object)));
+ if (empty($object)) {
+ $message = sprintf('Key "%s" does not exist as the array is empty', $arrayItem);
+ } else {
+ $message = sprintf('Key "%s" for array with keys "%s" does not exist', $arrayItem, implode(', ', array_keys($object)));
+ }
} elseif (Twig_Template::ARRAY_CALL === $type) {
$message = sprintf('Impossible to access a key ("%s") on a %s variable ("%s")', $item, gettype($object), $object);
} else {