Adding Flint lib in order to cache routes.

skala
Julio Montoya 12 years ago
parent 5ee73449a8
commit 91b46e26ed
  1. 5
      composer.json
  2. 624
      composer.lock
  3. 24
      main/inc/routes.php
  4. 48
      main/inc/services.php
  5. 37
      src/ChamiloLMS/Controller/BaseController.php
  6. 12
      src/ChamiloLMS/Controller/CommonController.php
  7. 6
      src/ChamiloLMS/Controller/IndexController.php
  8. 36
      src/ChamiloLMS/Controller/Tool/Curriculum/CurriculumCategoryController.php
  9. 49
      src/ChamiloLMS/Provider/ReflectionControllerProvider.php
  10. 3
      src/ChamiloLMS/Resources/config/route_example.yml

@ -39,7 +39,7 @@
],
"require": {
"php": ">=5.3.2",
"silex/silex": "~1.0",
"silex/silex": "1.*",
"symfony/console" : "~2.3",
"symfony/twig-bridge": "~2.3",
"symfony/doctrine-bridge": "2.3.*@dev",
@ -76,7 +76,8 @@
"bt51/gaufrette-serviceprovider": "dev-master",
"neutron/silex-filesystem-provider": "dev-master",
"jbroadway/urlify": "dev-master",
"sensio/framework-extra-bundle": "2.3.*@dev"
"sensio/framework-extra-bundle": "2.3.*@dev",
"flint/flint" : "~1.4"
},
"require-dev": {
"symfony/browser-kit": "2.3.*@dev",

624
composer.lock generated

@ -3,7 +3,7 @@
"This file locks the dependencies of your project to a known state",
"Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file"
],
"hash": "94cb7c5f7d4efa532d6bd2b1a4ba0cd6",
"hash": "4a9f7f6b12b57b152e87183d9cf86a50",
"packages": [
{
"name": "bt51/gaufrette-serviceprovider",
@ -447,6 +447,57 @@
],
"time": "2013-02-18 00:04:08"
},
{
"name": "flint/flint",
"version": "1.4.1",
"source": {
"type": "git",
"url": "https://github.com/henrikbjorn/Flint.git",
"reference": "1.4.1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/henrikbjorn/Flint/zipball/1.4.1",
"reference": "1.4.1",
"shasum": ""
},
"require": {
"php": ">=5.3.3",
"silex/silex": "~1.0",
"symfony/config": "~2.2",
"twig/twig": "~1.10"
},
"replace": {
"henrikbjorn/flint": "self.version"
},
"require-dev": {
"symfony/console": "~2.2"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.4.x-dev"
}
},
"autoload": {
"psr-0": {
"Flint": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Henrik Bjornskov",
"email": "henrik@bjrnskov.dk",
"homepage": "http://henrik.bjrnskov.dk"
}
],
"description": "Enhanced Silex",
"time": "2013-07-04 09:26:29"
},
{
"name": "franmomu/silex-pagerfanta-provider",
"version": "2.3.x-dev",
@ -1391,18 +1442,65 @@
"description": "A fork of the popular pChart library.",
"time": "2013-03-18 08:23:38"
},
{
"name": "sensio/framework-extra-bundle",
"version": "dev-master",
"target-dir": "Sensio/Bundle/FrameworkExtraBundle",
"source": {
"type": "git",
"url": "https://github.com/sensiolabs/SensioFrameworkExtraBundle.git",
"reference": "v2.3.1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/v2.3.1",
"reference": "v2.3.1",
"shasum": ""
},
"require": {
"doctrine/common": ">=2.2,<3.0",
"symfony/framework-bundle": ">=2.2,<3.0"
},
"type": "symfony-bundle",
"extra": {
"branch-alias": {
"dev-master": "2.3.x-dev"
}
},
"autoload": {
"psr-0": {
"Sensio\\Bundle\\FrameworkExtraBundle": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
}
],
"description": "This bundle provides a way to configure your controllers with annotations",
"keywords": [
"annotations",
"controllers"
],
"time": "2013-06-02 16:13:20"
},
{
"name": "silex/silex",
"version": "v1.0.0",
"version": "v1.0.1",
"source": {
"type": "git",
"url": "https://github.com/fabpot/Silex.git",
"reference": "v1.0.0"
"reference": "v1.0.1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/fabpot/Silex/zipball/v1.0.0",
"reference": "v1.0.0",
"url": "https://api.github.com/repos/fabpot/Silex/zipball/v1.0.1",
"reference": "v1.0.1",
"shasum": ""
},
"require": {
@ -1415,7 +1513,7 @@
},
"require-dev": {
"doctrine/dbal": ">=2.2.0,<2.4.0-dev",
"monolog/monolog": ">=1.4,<2.0,>=1.4.1",
"monolog/monolog": "~1.4,>=1.4.1",
"swiftmailer/swiftmailer": "5.*",
"symfony/browser-kit": ">=2.1,<2.4-dev",
"symfony/config": ">=2.1,<2.4-dev",
@ -1471,7 +1569,7 @@
"keywords": [
"microframework"
],
"time": "2013-05-03 16:49:57"
"time": "2013-07-04 06:25:40"
},
{
"name": "swiftmailer/swiftmailer",
@ -1625,25 +1723,25 @@
},
{
"name": "symfony/debug",
"version": "v2.3.1",
"version": "v2.3.3",
"target-dir": "Symfony/Component/Debug",
"source": {
"type": "git",
"url": "https://github.com/symfony/Debug.git",
"reference": "v2.3.1"
"reference": "v2.3.3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Debug/zipball/v2.3.1",
"reference": "v2.3.1",
"url": "https://api.github.com/repos/symfony/Debug/zipball/v2.3.3",
"reference": "v2.3.3",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"require-dev": {
"symfony/http-foundation": ">=2.1,<3.0",
"symfony/http-kernel": ">=2.1,<3.0"
"symfony/http-foundation": "~2.1",
"symfony/http-kernel": "~2.1"
},
"suggest": {
"symfony/class-loader": "",
@ -1677,7 +1775,7 @@
],
"description": "Symfony Debug Component",
"homepage": "http://symfony.com",
"time": "2013-06-02 11:58:44"
"time": "2013-07-01 12:24:43"
},
{
"name": "symfony/dependency-injection",
@ -1803,24 +1901,24 @@
},
{
"name": "symfony/event-dispatcher",
"version": "v2.3.1",
"version": "v2.3.3",
"target-dir": "Symfony/Component/EventDispatcher",
"source": {
"type": "git",
"url": "https://github.com/symfony/EventDispatcher.git",
"reference": "v2.3.1"
"reference": "v2.3.3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/v2.3.1",
"reference": "v2.3.1",
"url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/v2.3.3",
"reference": "v2.3.3",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"require-dev": {
"symfony/dependency-injection": ">=2.0,<3.0"
"symfony/dependency-injection": "~2.0"
},
"suggest": {
"symfony/dependency-injection": "",
@ -1853,7 +1951,7 @@
],
"description": "Symfony EventDispatcher Component",
"homepage": "http://symfony.com",
"time": "2013-05-13 14:36:40"
"time": "2013-07-21 12:12:18"
},
{
"name": "symfony/filesystem",
@ -1962,20 +2060,90 @@
"time": "2013-06-02 12:05:51"
},
{
"name": "symfony/http-foundation",
"name": "symfony/framework-bundle",
"version": "v2.3.1",
"target-dir": "Symfony/Component/HttpFoundation",
"target-dir": "Symfony/Bundle/FrameworkBundle",
"source": {
"type": "git",
"url": "https://github.com/symfony/HttpFoundation.git",
"url": "https://github.com/symfony/FrameworkBundle.git",
"reference": "v2.3.1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/HttpFoundation/zipball/v2.3.1",
"url": "https://api.github.com/repos/symfony/FrameworkBundle/zipball/v2.3.1",
"reference": "v2.3.1",
"shasum": ""
},
"require": {
"doctrine/common": ">=2.2,<3.0",
"php": ">=5.3.3",
"symfony/config": ">=2.2,<3.0",
"symfony/dependency-injection": ">=2.2,<3.0",
"symfony/event-dispatcher": ">=2.1,<3.0",
"symfony/filesystem": ">=2.3,<3.0",
"symfony/http-kernel": ">=2.3,<3.0",
"symfony/routing": ">=2.2,<3.0",
"symfony/stopwatch": ">=2.3,<3.0",
"symfony/templating": ">=2.1,<3.0",
"symfony/translation": ">=2.3,<3.0"
},
"require-dev": {
"symfony/class-loader": ">=2.1,<3.0",
"symfony/finder": ">=2.0,<3.0",
"symfony/form": ">=2.3,<3.0",
"symfony/security": ">=2.3,<3.0",
"symfony/validator": ">=2.1,<3.0"
},
"suggest": {
"symfony/console": "",
"symfony/finder": "",
"symfony/form": "",
"symfony/validator": ""
},
"type": "symfony-bundle",
"extra": {
"branch-alias": {
"dev-master": "2.3-dev"
}
},
"autoload": {
"psr-0": {
"Symfony\\Bundle\\FrameworkBundle\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
}
],
"description": "Symfony FrameworkBundle",
"homepage": "http://symfony.com",
"time": "2013-06-07 22:05:01"
},
{
"name": "symfony/http-foundation",
"version": "v2.3.3",
"target-dir": "Symfony/Component/HttpFoundation",
"source": {
"type": "git",
"url": "https://github.com/symfony/HttpFoundation.git",
"reference": "v2.3.3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/HttpFoundation/zipball/v2.3.3",
"reference": "v2.3.3",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
@ -2009,40 +2177,41 @@
],
"description": "Symfony HttpFoundation Component",
"homepage": "http://symfony.com",
"time": "2013-05-10 06:00:03"
"time": "2013-08-07 14:02:06"
},
{
"name": "symfony/http-kernel",
"version": "v2.3.1",
"version": "v2.3.3",
"target-dir": "Symfony/Component/HttpKernel",
"source": {
"type": "git",
"url": "https://github.com/symfony/HttpKernel.git",
"reference": "v2.3.1"
"reference": "v2.3.3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/HttpKernel/zipball/v2.3.1",
"reference": "v2.3.1",
"url": "https://api.github.com/repos/symfony/HttpKernel/zipball/v2.3.3",
"reference": "v2.3.3",
"shasum": ""
},
"require": {
"php": ">=5.3.3",
"psr/log": ">=1.0,<2.0",
"symfony/debug": ">=2.3,<3.0",
"symfony/event-dispatcher": ">=2.1,<3.0",
"symfony/http-foundation": ">=2.2,<3.0"
"psr/log": "~1.0",
"symfony/debug": "~2.3",
"symfony/event-dispatcher": "~2.1",
"symfony/http-foundation": "~2.2"
},
"require-dev": {
"symfony/browser-kit": "2.2.*",
"symfony/class-loader": ">=2.1,<3.0",
"symfony/config": ">=2.0,<3.0",
"symfony/console": "2.2.*",
"symfony/dependency-injection": ">=2.0,<3.0",
"symfony/finder": ">=2.0,<3.0",
"symfony/process": ">=2.0,<3.0",
"symfony/routing": ">=2.2,<3.0",
"symfony/stopwatch": ">=2.2,<3.0"
"symfony/browser-kit": "~2.2",
"symfony/class-loader": "~2.1",
"symfony/config": "~2.0",
"symfony/console": "~2.2",
"symfony/dependency-injection": "~2.0",
"symfony/finder": "~2.0",
"symfony/process": "~2.0",
"symfony/routing": "~2.2",
"symfony/stopwatch": "~2.2",
"symfony/templating": "~2.2"
},
"suggest": {
"symfony/browser-kit": "",
@ -2079,7 +2248,7 @@
],
"description": "Symfony HttpKernel Component",
"homepage": "http://symfony.com",
"time": "2013-06-11 11:46:38"
"time": "2013-08-07 17:11:16"
},
{
"name": "symfony/icu",
@ -2305,17 +2474,17 @@
},
{
"name": "symfony/options-resolver",
"version": "v2.3.1",
"version": "v2.3.3",
"target-dir": "Symfony/Component/OptionsResolver",
"source": {
"type": "git",
"url": "https://github.com/symfony/OptionsResolver.git",
"reference": "v2.3.1"
"reference": "v2.3.3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/OptionsResolver/zipball/v2.3.1",
"reference": "v2.3.1",
"url": "https://api.github.com/repos/symfony/OptionsResolver/zipball/v2.3.3",
"reference": "v2.3.3",
"shasum": ""
},
"require": {
@ -2353,7 +2522,7 @@
"configuration",
"options"
],
"time": "2013-04-11 06:50:46"
"time": "2013-07-21 12:12:18"
},
{
"name": "symfony/property-access",
@ -2415,27 +2584,27 @@
},
{
"name": "symfony/routing",
"version": "v2.3.1",
"version": "v2.3.3",
"target-dir": "Symfony/Component/Routing",
"source": {
"type": "git",
"url": "https://github.com/symfony/Routing.git",
"reference": "v2.3.1"
"reference": "v2.3.3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Routing/zipball/v2.3.1",
"reference": "v2.3.1",
"url": "https://api.github.com/repos/symfony/Routing/zipball/v2.3.3",
"reference": "v2.3.3",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"require-dev": {
"doctrine/common": ">=2.2,<3.0",
"psr/log": ">=1.0,<2.0",
"symfony/config": ">=2.2,<3.0",
"symfony/yaml": ">=2.0,<3.0"
"doctrine/common": "~2.2",
"psr/log": "~1.0",
"symfony/config": "~2.2",
"symfony/yaml": "~2.0"
},
"suggest": {
"doctrine/common": "",
@ -2469,7 +2638,7 @@
],
"description": "Symfony Routing Component",
"homepage": "http://symfony.com",
"time": "2013-05-20 08:57:26"
"time": "2013-08-02 20:53:38"
},
{
"name": "symfony/security",
@ -2539,6 +2708,100 @@
"homepage": "http://symfony.com",
"time": "2013-06-02 22:50:02"
},
{
"name": "symfony/stopwatch",
"version": "v2.3.3",
"target-dir": "Symfony/Component/Stopwatch",
"source": {
"type": "git",
"url": "https://github.com/symfony/Stopwatch.git",
"reference": "v2.3.3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Stopwatch/zipball/v2.3.3",
"reference": "v2.3.3",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.3-dev"
}
},
"autoload": {
"psr-0": {
"Symfony\\Component\\Stopwatch\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
}
],
"description": "Symfony Stopwatch Component",
"homepage": "http://symfony.com",
"time": "2013-07-21 12:12:18"
},
{
"name": "symfony/templating",
"version": "v2.3.1",
"target-dir": "Symfony/Component/Templating",
"source": {
"type": "git",
"url": "https://github.com/symfony/Templating.git",
"reference": "v2.3.1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Templating/zipball/v2.3.1",
"reference": "v2.3.1",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.3-dev"
}
},
"autoload": {
"psr-0": {
"Symfony\\Component\\Templating\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
}
],
"description": "Symfony Templating Component",
"homepage": "http://symfony.com",
"time": "2013-04-17 05:31:37"
},
{
"name": "symfony/translation",
"version": "v2.3.1",
@ -3086,53 +3349,6 @@
],
"time": "2013-03-15 18:47:32"
},
{
"name": "sensio/framework-extra-bundle",
"version": "dev-master",
"target-dir": "Sensio/Bundle/FrameworkExtraBundle",
"source": {
"type": "git",
"url": "https://github.com/sensiolabs/SensioFrameworkExtraBundle.git",
"reference": "v2.3.1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/v2.3.1",
"reference": "v2.3.1",
"shasum": ""
},
"require": {
"doctrine/common": ">=2.2,<3.0",
"symfony/framework-bundle": ">=2.2,<3.0"
},
"type": "symfony-bundle",
"extra": {
"branch-alias": {
"dev-master": "2.3.x-dev"
}
},
"autoload": {
"psr-0": {
"Sensio\\Bundle\\FrameworkExtraBundle": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
}
],
"description": "This bundle provides a way to configure your controllers with annotations",
"keywords": [
"annotations",
"controllers"
],
"time": "2013-06-02 16:13:20"
},
{
"name": "silex/web-profiler",
"version": "dev-master",
@ -3235,24 +3451,24 @@
},
{
"name": "symfony/dom-crawler",
"version": "v2.3.1",
"version": "v2.3.3",
"target-dir": "Symfony/Component/DomCrawler",
"source": {
"type": "git",
"url": "https://github.com/symfony/DomCrawler.git",
"reference": "v2.3.1"
"reference": "v2.3.3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/DomCrawler/zipball/v2.3.1",
"reference": "v2.3.1",
"url": "https://api.github.com/repos/symfony/DomCrawler/zipball/v2.3.3",
"reference": "v2.3.3",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"require-dev": {
"symfony/css-selector": ">=2.0,<3.0"
"symfony/css-selector": "~2.0"
},
"suggest": {
"symfony/css-selector": ""
@ -3284,21 +3500,21 @@
],
"description": "Symfony DomCrawler Component",
"homepage": "http://symfony.com",
"time": "2013-06-11 07:15:14"
"time": "2013-07-21 12:12:18"
},
{
"name": "symfony/finder",
"version": "v2.2.3",
"version": "v2.2.5",
"target-dir": "Symfony/Component/Finder",
"source": {
"type": "git",
"url": "https://github.com/symfony/Finder.git",
"reference": "v2.2.3"
"reference": "v2.2.5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Finder/zipball/v2.2.3",
"reference": "v2.2.3",
"url": "https://api.github.com/repos/symfony/Finder/zipball/v2.2.5",
"reference": "v2.2.5",
"shasum": ""
},
"require": {
@ -3331,91 +3547,21 @@
],
"description": "Symfony Finder Component",
"homepage": "http://symfony.com",
"time": "2013-06-10 18:35:46"
},
{
"name": "symfony/framework-bundle",
"version": "v2.3.1",
"target-dir": "Symfony/Bundle/FrameworkBundle",
"source": {
"type": "git",
"url": "https://github.com/symfony/FrameworkBundle.git",
"reference": "v2.3.1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/FrameworkBundle/zipball/v2.3.1",
"reference": "v2.3.1",
"shasum": ""
},
"require": {
"doctrine/common": ">=2.2,<3.0",
"php": ">=5.3.3",
"symfony/config": ">=2.2,<3.0",
"symfony/dependency-injection": ">=2.2,<3.0",
"symfony/event-dispatcher": ">=2.1,<3.0",
"symfony/filesystem": ">=2.3,<3.0",
"symfony/http-kernel": ">=2.3,<3.0",
"symfony/routing": ">=2.2,<3.0",
"symfony/stopwatch": ">=2.3,<3.0",
"symfony/templating": ">=2.1,<3.0",
"symfony/translation": ">=2.3,<3.0"
},
"require-dev": {
"symfony/class-loader": ">=2.1,<3.0",
"symfony/finder": ">=2.0,<3.0",
"symfony/form": ">=2.3,<3.0",
"symfony/security": ">=2.3,<3.0",
"symfony/validator": ">=2.1,<3.0"
},
"suggest": {
"symfony/console": "",
"symfony/finder": "",
"symfony/form": "",
"symfony/validator": ""
},
"type": "symfony-bundle",
"extra": {
"branch-alias": {
"dev-master": "2.3-dev"
}
},
"autoload": {
"psr-0": {
"Symfony\\Bundle\\FrameworkBundle\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
}
],
"description": "Symfony FrameworkBundle",
"homepage": "http://symfony.com",
"time": "2013-06-07 22:05:01"
"time": "2013-07-01 12:15:46"
},
{
"name": "symfony/process",
"version": "v2.3.1",
"version": "v2.3.3",
"target-dir": "Symfony/Component/Process",
"source": {
"type": "git",
"url": "https://github.com/symfony/Process.git",
"reference": "v2.3.1"
"reference": "v2.3.3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Process/zipball/v2.3.1",
"reference": "v2.3.1",
"url": "https://api.github.com/repos/symfony/Process/zipball/v2.3.3",
"reference": "v2.3.3",
"shasum": ""
},
"require": {
@ -3448,101 +3594,7 @@
],
"description": "Symfony Process Component",
"homepage": "http://symfony.com",
"time": "2013-05-06 20:03:44"
},
{
"name": "symfony/stopwatch",
"version": "v2.3.1",
"target-dir": "Symfony/Component/Stopwatch",
"source": {
"type": "git",
"url": "https://github.com/symfony/Stopwatch.git",
"reference": "v2.3.1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Stopwatch/zipball/v2.3.1",
"reference": "v2.3.1",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.3-dev"
}
},
"autoload": {
"psr-0": {
"Symfony\\Component\\Stopwatch\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
}
],
"description": "Symfony Stopwatch Component",
"homepage": "http://symfony.com",
"time": "2013-04-17 07:17:10"
},
{
"name": "symfony/templating",
"version": "v2.3.1",
"target-dir": "Symfony/Component/Templating",
"source": {
"type": "git",
"url": "https://github.com/symfony/Templating.git",
"reference": "v2.3.1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Templating/zipball/v2.3.1",
"reference": "v2.3.1",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.3-dev"
}
},
"autoload": {
"psr-0": {
"Symfony\\Component\\Templating\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
}
],
"description": "Symfony Templating Component",
"homepage": "http://symfony.com",
"time": "2013-04-17 05:31:37"
"time": "2013-08-02 21:51:01"
},
{
"name": "symfony/web-profiler-bundle",
@ -3625,13 +3677,13 @@
"bt51/gaufrette-serviceprovider": 20,
"neutron/silex-filesystem-provider": 20,
"jbroadway/urlify": 20,
"sensio/framework-extra-bundle": 20,
"symfony/browser-kit": 20,
"silex/web-profiler": 20,
"natxet/cssmin": 20,
"leafo/lessphp": 20,
"mheap/silex-assetic": 20,
"filp/whoops": 20,
"sensio/framework-extra-bundle": 20
"filp/whoops": 20
},
"platform": {
"php": ">=5.3.2"

@ -444,19 +444,10 @@ $app->match('/main/{file}', 'legacy.controller:classicAction', 'GET|POST')
->assert('file', '.+')
->assert('type', '.+');
/** Logout already implemented by the the security service provider */
/* $app->get('/logout', 'index.controller:logoutAction')
->bind('logout')
->after($cleanCourseSession);*/
/** Login form */
$app->match('/login', 'index.controller:loginAction', 'GET|POST')
->bind('login');
/*$app->match('/admin/login-check', 'index.controller:checkLoginAction', 'GET|POST')
->bind('login_check');*/
/** Course home instead of courses/MATHS the new URL is web/courses/MATHS */
$app->match('/courses/{cidReq}/{id_session}/', 'course_home.controller:indexAction', 'GET|POST')
->assert('id_session', '\d+')
@ -537,7 +528,6 @@ $app->get('/data/upload/groups/{groupId}/{file}', 'index.controller:getGroupFile
->assert('type', '.+');
/** Admin */
$app->get('/admin/dashboard', 'index.controller:dashboardAction')
->assert('type', '.+')
->bind('admin_dashboard');
@ -659,24 +649,16 @@ $app->match('/admin/administrator/', 'admin.controller:indexAction', 'GET')
->assert('type', '.+')
->bind('admin_administrator');
$app->match('/ajax', 'model_ajax.controller:indexAction', 'GET')
->assert('type', '.+')
->bind('model_ajax');
// Roles
// @todo improve route creation. Use mount() to write less
if ($alreadyInstalled) {
// Takes a some time to load @todo improve this calls
$app->mount('/admin/administrator/roles', new ChamiloLMS\Provider\ReflectionControllerProvider('role.controller'));
$app->mount('/admin/administrator/question_scores', new ChamiloLMS\Provider\ReflectionControllerProvider('question_score.controller'));
$app->mount('/admin/administrator/question_score_names', new ChamiloLMS\Provider\ReflectionControllerProvider('question_score_name.controller'));
// Ministerio routes:
$app->mount('/admin/administrator/branches', new ChamiloLMS\Provider\ReflectionControllerProvider('branch.controller'));
$app->mount('/admin/administrator/juries', new ChamiloLMS\Provider\ReflectionControllerProvider('jury.controller'));
@ -684,9 +666,9 @@ if ($alreadyInstalled) {
$app->mount('/admin/jury_president', new ChamiloLMS\Provider\ReflectionControllerProvider('jury_president.controller'));
$app->mount('/admin/jury_member', new ChamiloLMS\Provider\ReflectionControllerProvider('jury_member.controller'));
$app->mount('/tool/curriculum/category', new ChamiloLMS\Provider\ReflectionControllerProvider('curriculum_category.controller'));
$app->mount('/tool/curriculum/item', new ChamiloLMS\Provider\ReflectionControllerProvider('curriculum_item.controller'));
$app->mount('/tool/curriculum/user', new ChamiloLMS\Provider\ReflectionControllerProvider('curriculum_user.controller'));
$app->mount('/courses/{courseCode}/curriculum/category', new ChamiloLMS\Provider\ReflectionControllerProvider('curriculum_category.controller'));
$app->mount('/courses/{courseCode}/curriculum/item', new ChamiloLMS\Provider\ReflectionControllerProvider('curriculum_item.controller'));
$app->mount('/courses/{courseCode}/curriculum/user', new ChamiloLMS\Provider\ReflectionControllerProvider('curriculum_user.controller'));
}

@ -7,6 +7,19 @@
* @package chamilo.services
*/
// Flint
$app->register(new Flint\Provider\ConfigServiceProvider());
$app['root_dir'] = $app['root_sys'];
$app->register(new Flint\Provider\RoutingServiceProvider(), array(
'routing.resource' => $app['sys_config_path'].'routing.yml',
'routing.options' => array(
'cache_dir' => $app['debug'] == true ? null : $app['sys_temp_path']
//'cache_dir' => $app['sys_temp_path']
),
));
// Monolog.
use Doctrine\Common\Persistence\AbstractManagerRegistry;
use FranMoreno\Silex\Provider\PagerfantaServiceProvider;
@ -35,6 +48,7 @@ if (is_writable($app['sys_temp_path'])) {
}
}
//Setting HttpCacheService provider in order to use do: $app['http_cache']->run();
/*
$app->register(new Silex\Provider\HttpCacheServiceProvider(), array(
@ -43,7 +57,15 @@ $app->register(new Silex\Provider\HttpCacheServiceProvider(), array(
// http://symfony.com/doc/master/reference/configuration/security.html
$app->register(new Silex\Provider\SecurityServiceProvider(), array(
class SecurityServiceProvider extends \Silex\Provider\SecurityServiceProvider
{
public function addFakeRoute($method, $pattern, $name)
{
// Don't do anything otherwise the closures will be dumped and that leads to fatal errors.
}
}
$app->register(new SecurityServiceProvider, array(
'security.firewalls' => array(
'login' => array(
'pattern' => '^/login$',
@ -67,17 +89,12 @@ $app->register(new Silex\Provider\SecurityServiceProvider(), array(
return $app['orm.em']->getRepository('Entity\User');
}),
'anonymous' => true
),/*
'classic' => array(
'pattern' => '^/.*$'
)*/
)
)
));
// Registering Password encoder.
$app['security.encoder.digest'] = $app->share(function($app) {
// use the sha1 algorithm
// don't base64 encode the password
@ -85,6 +102,7 @@ $app['security.encoder.digest'] = $app->share(function($app) {
return new MessageDigestPasswordEncoder($app['configuration']['password_encryption'], false, 1);
});
// What to do when login success?
$app['security.authentication.success_handler.admin'] = $app->share(function($app) {
return new ChamiloLMS\Component\Auth\LoginSuccessHandler($app['url_generator'], $app['security']);
@ -97,7 +115,14 @@ $app['security.authentication.logout_handler.admin'] = $app->share(function($app
// Role hierarchy
$app['security.role_hierarchy'] = array(
'ROLE_ADMIN' => array('ROLE_QUESTION_MANAGER', 'ROLE_SESSION_MANAGER', 'ROLE_TEACHER', 'ROLE_ALLOWED_TO_SWITCH', 'ROLE_DIRECTOR'),
'ROLE_ADMIN' => array(
'ROLE_QUESTION_MANAGER',
'ROLE_SESSION_MANAGER',
'ROLE_TEACHER',
'ROLE_ALLOWED_TO_SWITCH',
'ROLE_DIRECTOR',
'ROLE_JURY_PRESIDENT'
),
'ROLE_RRHH' => array('ROLE_TEACHER'),
'ROLE_TEACHER' => array('ROLE_STUDENT'),
'ROLE_QUESTION_MANAGER' => array('ROLE_STUDENT', 'ROLE_QUESTION_MANAGER'),
@ -158,7 +183,7 @@ $app->register(new Silex\Provider\TranslationServiceProvider(), array(
$app->register(new Silex\Provider\FormServiceProvider());
// URL generator provider
$app->register(new Silex\Provider\UrlGeneratorServiceProvider());
//$app->register(new Silex\Provider\UrlGeneratorServiceProvider());
// Needed to use the "entity" option in symfony forms
@ -450,7 +475,6 @@ if ($app['assetic.enabled']) {
);
}
// Gaufrette service provider (to manage files/dirs) (not used yet)
/*
use Bt51\Silex\Provider\GaufretteServiceProvider\GaufretteServiceProvider;
@ -685,7 +709,3 @@ $app['curriculum_user.controller'] = $app->share(
return new ChamiloLMS\Controller\Tool\Curriculum\CurriculumUserController($app);
}
);

@ -12,6 +12,7 @@ use Symfony\Component\HttpFoundation\Request;
use Doctrine\ORM\Query;
use Doctrine\ORM\NoResultException;
use Silex\Application;
use Flint\Controller\Controller as FlintController;
use Symfony\Component\Routing\Annotation\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
@ -21,9 +22,10 @@ use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
*
* @abstract
*/
abstract class BaseController
abstract class BaseController extends FlintController
{
protected $app;
protected $pimple;
/**
* @param Application $app
@ -31,6 +33,8 @@ abstract class BaseController
public function __construct(Application $app)
{
$this->app = $app;
// In order to use the Flint Controller
$this->pimple = $app;
}
/**
@ -81,28 +85,14 @@ abstract class BaseController
return $this->get('request');
}
protected function redirect($redirect)
{
return $this->app->redirect($redirect);
}
protected function createNotFoundException($message = 'Not Found', \Exception $previous = null)
{
return $this->app->abort(404, $message);
}
/**
* @param string $item
* @return mixed
*/
protected function get($item)
{
return $this->app[$item];
}
protected function getManager()
{
return $this->app['orm.em'];
return $this->get('orm.em');
}
/**
@ -114,14 +104,15 @@ abstract class BaseController
protected function createUrl($label, $params = array())
{
$links = $this->generateLinks();
$courseCode = $this->getRequest()->get('courseCode');
$params['courseCode'] = $courseCode;
if (isset($links) && is_array($links) && isset($links[$label])) {
$url = $this->get('url_generator')->generate($links[$label], $params);
$url = $this->generateUrl($links[$label], $params);
return $url;
}
return $url = $this->get('url_generator')->generate($links['list_link']);
return $url = $this->generateUrl($links['list_link']);
}
// CRUD default actions
/**
@ -154,6 +145,7 @@ abstract class BaseController
$item = $form->getData();
$this->createAction($item);
$this->get('session')->getFlashBag()->add('success', "Added");
$url = $this->createUrl('list_link');
return $this->redirect($url);
}
@ -168,7 +160,7 @@ abstract class BaseController
/**
*
* @Route("/{id}", requirements={"id" = "\d+"}, defaults={"foo" = "bar"})
* @Route("/{id}", requirements={"id" = "\d+"})
* @Method({"GET"})
*/
public function readAction($id)
@ -180,7 +172,7 @@ abstract class BaseController
/**
*
* @Route("/{id}/edit", requirements={"id" = "\d+"}, defaults={"foo" = "bar"})
* @Route("/{id}/edit", requirements={"id" = "\d+"}})
* @Method({"GET"})
*/
public function editAction($id)
@ -217,7 +209,7 @@ abstract class BaseController
/**
*
* @Route("/{id/delete}", requirements={"id" = "\d+"}, defaults={"foo" = "bar"})
* @Route("/{id}/delete", requirements={"id" = "\d+"})
* @Method({"GET"})
*/
public function deleteAction($id)
@ -231,7 +223,6 @@ abstract class BaseController
}
}
/**
* Base "read" action.
*

@ -12,12 +12,6 @@ use ChamiloLMS\Controller\BaseController;
*/
class CommonController extends BaseController
{
public $languageFiles = array();
public function __construct(Application $app)
{
parent::__construct($app);
}
/**
* {@inheritdoc}
@ -43,8 +37,8 @@ class CommonController extends BaseController
/**
* {@inheritdoc}
*/
protected function getControllerAlias() {
protected function getControllerAlias()
{
}
/**
@ -74,7 +68,6 @@ class CommonController extends BaseController
);
}
/**
* @param Application $app
* @param array $breadcrumbs
@ -129,5 +122,4 @@ class CommonController extends BaseController
);
$app['breadcrumbs'] = $bread;
}
}

@ -198,7 +198,6 @@ class IndexController extends CommonController
$app['template']->assign('error', $app['security.last_error']($request));
$response = $app['template']->render_template('auth/login.tpl');
return new Response($response, 200, array('Cache-Control' => 's-maxage=3600, public'));
//return new Response($response, 200, array());
}
/**
@ -287,8 +286,9 @@ class IndexController extends CommonController
->getForm();
return $app['template']->assign('form', $form->createView());
*/
$form = new \FormValidator('formLogin', 'POST', $app['url_generator']->generate('admin_login_check'), null, array('class' => 'form-vertical'));
$url = $app['url_generator']->generate('admin_login_check');
//var_dump($app['router']->generate('admin_login_check'));
$form = new \FormValidator('formLogin', 'POST', $url , null, array('class' => 'form-vertical'));
$form->addElement(
'text',
'username',

@ -14,7 +14,6 @@ use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
/**
* Class CurriculumController
* @todo @route and @method function don't work yet
* @package ChamiloLMS\Controller
* @author Julio Montoya <gugli100@gmail.com>
*/
@ -25,7 +24,7 @@ class CurriculumCategoryController extends CommonController
* @Route("/")
* @Method({"GET"})
*/
public function indexAction()
public function indexAction($courseCode)
{
$options = array(
'decorate' => true,
@ -33,24 +32,25 @@ class CurriculumCategoryController extends CommonController
'rootClose' => '</ul>',
'childOpen' => '<li>',
'childClose' => '</li>',
'nodeDecorator' => function($row) {
'nodeDecorator' => function ($row) use ($courseCode) {
$addChildren = null;
$items = null;
if ($row['lvl'] <= 0) {
$addChildren = '<a class="btn" href="'.$this->createUrl('add_from_parent_link', array('id' => $row['id'])).'">Add children</a>';
$addChildren = '<a class="btn" href="'.$this->createUrl('add_from_parent_link', array('courseCode' => $courseCode, 'id' => $row['id'])).'">Add children</a>';
} else {
$addChildren = '<a class="btn" href="'.$this->createUrl('add_from_category', array('id' => $row['id'])).'">Add items</a>';
$addChildren = '<a class="btn" href="'.$this->createUrl('add_from_category', array('courseCode' => $courseCode, 'id' => $row['id'])).'">Add items</a>';
//$items = $row['items'];
$items = '<ul>';
foreach ($row['items'] as $item) {
$url = ' <a class="btn" href="'.$this->createUrl('edit_item', array('id' => $item['id'])).'">Edit</a>';
$url = ' <a class="btn" href="'.$this->createUrl('edit_item', array('courseCode' => $courseCode, 'id' => $item['id'])).'">Edit</a>';
$items.= '<li>'.$item['title']." (item) ".$url.'</li>';
}
$items .= '</ul>';
}
$readLink = '<a href="'.$this->createUrl('read_link', array('id' => $row['id'])).'">'.$row['title'].'</a>';
$editLink = '<a class="btn" href="'.$this->createUrl('update_link', array('id' => $row['id'])).'">Edit</a>';
$deleteLink = '<a class="btn" href="'.$this->createUrl('delete_link', array('id' => $row['id'])).'"/>Delete</a>';
$readLink = '<a href="'.$this->createUrl('read_link', array('courseCode' => $courseCode, 'id' => $row['id'])).'">'.$row['title'].'</a>';
$editLink = '<a class="btn" href="'.$this->createUrl('update_link', array('courseCode' => $courseCode, 'id' => $row['id'])).'">Edit</a>';
$deleteLink = '<a class="btn" href="'.$this->createUrl('delete_link', array('courseCode' => $courseCode, 'id' => $row['id'])).'"/>Delete</a>';
return $readLink.' '.$addChildren.' '.$editLink.' '.$deleteLink.$items;
}
@ -71,19 +71,20 @@ class CurriculumCategoryController extends CommonController
->getQuery();
$htmlTree = $repo->buildTree($query->getArrayResult(), $options);
$this->get('template')->assign('tree', $htmlTree);
$this->get('template')->assign('links', $this->generateLinks());
$response = $this->get('template')->render_template($this->getTemplatePath().'list.tpl');
return new Response($response, 200, array());
return new Response($response, 200, array());
}
/**
*
* @Route("/{id}", requirements={"id" = "\d+"}, defaults={"foo" = "bar"})
* @Route("/{id}/show", requirements={"id" = "\d+"})
* @Method({"GET"})
*/
public function readAction($id)
public function readCategoryAction($courseCode, $id)
{
return parent::readAction($id);
}
@ -92,7 +93,7 @@ class CurriculumCategoryController extends CommonController
* @Route("/add")
* @Method({"GET"})
*/
public function addAction()
public function addCategoryAction($courseCode)
{
return parent::addAction();
}
@ -137,20 +138,20 @@ class CurriculumCategoryController extends CommonController
/**
*
* @Route("/{id}/edit", requirements={"id" = "\d+"}, defaults={"foo" = "bar"})
* @Route("/{id}/edit", requirements={"id" = "\d+"})
* @Method({"GET"})
*/
public function editAction($id)
public function editCategoryAction($courseCode, $id)
{
return parent::editAction($id);
}
/**
*
* @Route("/{id}/delete", requirements={"id" = "\d+"}, defaults={"foo" = "bar"})
* @Route("/{id}/delete", requirements={"id" = "\d+"})
* @Method({"GET"})
*/
public function deleteAction($id)
public function deleteCategoryAction($courseCode, $id)
{
return parent::deleteAction($id);
}
@ -167,7 +168,6 @@ class CurriculumCategoryController extends CommonController
$routes['add_from_category'] = 'curriculum_item.controller:addFromCategoryAction';
$routes['edit_item'] = 'curriculum_item.controller:editAction';
return $routes ;
}

@ -35,10 +35,14 @@ class ReflectionControllerProvider implements ControllerProviderInterface
/** @var \Silex\ControllerCollection $controllers */
$controllers = $app['controllers_factory'];
// Routes are already cached using Flint
if ($app['debug'] == false) {
return $controllers;
}
$reflection = new \ReflectionClass($app[$this->controllerName]);
$annotationReader = new AnnotationReader();
//$classAnnotations = $annotationReader->getClassAnnotations($reflection);
$routeAnnotation = new Route(array());
$methodAnnotation = new Method(array());
@ -46,37 +50,52 @@ class ReflectionControllerProvider implements ControllerProviderInterface
foreach ($methods as $method) {
$methodName = $method->getName();
$controllerName = $this->controllerName.':'.$methodName;
if (in_array($methodName, array('__construct', 'get', 'getManager'))) {
// Parse only function with the "Action" suffix
if (strpos($methodName, 'Action') === false) {
continue;
}
/** @var Route $routeObject */
$routeObject = $annotationReader->getMethodAnnotation($method, $routeAnnotation);
$req = $routeObject->getRequirements();
//$routeObject->setMethods();
// Getting all annotations
$routeObjects = $annotationReader->getMethodAnnotations($method);
/** @var Method $routeObject */
$methodObject = $annotationReader->getMethodAnnotation($method, $methodAnnotation);
$methodsToString = 'GET';
if ($methodObject) {
$methodsToString = implode('|', $methodObject->getMethods());
}
if ($routeObject) {
$match = $controllers->match($routeObject->getPath(), $controllerName, $methodsToString);
//var_dump($controllerName);
$match->bind($controllerName);
// setRequirements
if (!empty($req)) {
foreach ($req as $key => $value) {
$match->assert($key, $value);
/** @var Route $routeObject */
foreach ($routeObjects as $routeObject) {
if ($routeObject && is_a($routeObject, 'Symfony\Component\Routing\Annotation\Route')) {
$match = $controllers->match($routeObject->getPath(), $controllerName, $methodsToString);
// setRequirements
if (!empty($req)) {
foreach ($req as $key => $value) {
$match->assert($key, $value);
}
}
$defaults = $routeObject->getDefaults();
//var_dump($routeObject);
//var_dump($defaults);
if (!empty($defaults)) {
foreach ($defaults as $key => $value) {
$match->value($key, $value);
}
}
$match->bind($controllerName);
}
}
}
return $controllers;
}

@ -0,0 +1,3 @@
homepage:
path: /homepage
defaults: { _controller: index.controller:indexAction, culture: en }
Loading…
Cancel
Save