├── .gitignore ├── CONTRIBUTING.md ├── README.md ├── app ├── MyApp │ ├── Application │ │ └── API │ │ │ └── Controllers │ │ │ └── ProjectsController.php │ ├── Domain │ │ ├── Entity │ │ │ ├── Project.php │ │ │ └── TeamMember.php │ │ ├── Event │ │ │ └── .gitkeep │ │ └── Service │ │ │ └── .gitkeep │ ├── Infrastructure │ │ └── Repository │ │ │ ├── MetaData │ │ │ ├── MyApp.Domain.Entity.Project.dcm.xml │ │ │ └── MyApp.Domain.Entity.TeamMember.dcm.xml │ │ │ ├── Project.php │ │ │ └── TeamMember.php │ └── MyAppServiceProvider.php ├── commands │ └── .gitkeep ├── config │ ├── app.php │ ├── auth.php │ ├── cache.php │ ├── compile.php │ ├── database.php │ ├── local │ │ ├── app.php │ │ └── database.php │ ├── mail.php │ ├── packages │ │ └── .gitkeep │ ├── queue.php │ ├── remote.php │ ├── services.php │ ├── session.php │ ├── testing │ │ ├── cache.php │ │ └── session.php │ ├── view.php │ └── workbench.php ├── database │ ├── migrations │ │ └── .gitkeep │ ├── production.sqlite │ └── seeds │ │ ├── .gitkeep │ │ └── DatabaseSeeder.php ├── filters.php ├── lang │ └── en │ │ ├── pagination.php │ │ ├── reminders.php │ │ └── validation.php ├── routes.php ├── start │ ├── artisan.php │ ├── global.php │ └── local.php ├── storage │ ├── .gitignore │ ├── cache │ │ └── .gitignore │ ├── logs │ │ └── .gitignore │ ├── meta │ │ └── .gitignore │ ├── sessions │ │ └── .gitignore │ └── views │ │ └── .gitignore └── tests │ ├── ExampleTest.php │ └── TestCase.php ├── artisan ├── bootstrap ├── autoload.php ├── paths.php └── start.php ├── composer.json ├── composer.lock ├── phpunit.xml ├── public ├── .htaccess ├── favicon.ico ├── index.php ├── packages │ └── .gitkeep └── robots.txt └── server.php /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | vendor/* -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contribution Guidelines 2 | 3 | Please submit all issues and pull requests to the [laravel/framework](http://github.com/laravel/framework) repository! 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | laravel-ddd 2 | =========== 3 | 4 | N.B. I am not doing Laravel development currently, so this will not receive much love in the near future - but will leave it here for historical purposes ... 5 | 6 | A sandpit for playing around with DDD architecture options in Laravel 4. 7 | 8 | Gives a basic folder structure as a suggested approach, along with simple integration of Doctrine ORM. 9 | 10 | This is provided as a companion to some blog posts at 11 | 12 | http://caughtexceptions.blogspot.co.nz/2014/02/domain-driven-design-in-laravel-4-part-1.html 13 | 14 | It is not intended to be production code, and will not be developed past its current form in the near future. 15 | 16 | If you have put together a working architecture of Laravel 4, Doctrine and good DDD principles, let me know and I will put a link to it from here. 17 | -------------------------------------------------------------------------------- /app/MyApp/Application/API/Controllers/ProjectsController.php: -------------------------------------------------------------------------------- 1 | entity_manager = $entity_manager; 12 | 13 | } 14 | 15 | public function index() 16 | { 17 | 18 | //just some example of using Doctrine entity manager 19 | 20 | //create a new project 21 | $project = new \MyApp\Domain\Entity\Project(); 22 | $project->setName('Megashop website build'); 23 | 24 | //persist the new project 25 | $this->entity_manager->persist($project); 26 | $this->entity_manager->flush(); 27 | 28 | //get all the projects 29 | $projectRepository = $this->entity_manager->getRepository('MyApp\Domain\Entity\Project'); 30 | $projects = $projectRepository->findAll(); 31 | $hours_worked = array(); 32 | 33 | foreach ($projects as $project) { 34 | //because Project is an Entity Object encapsulating state and behaviour 35 | //it is easy/obvious to add/call methods on the object, such as the one 36 | //below to calculate the total hours worked by full project team 37 | $hours_worked[$project->getName()] = $project->calculateTotalHoursWorked(); 38 | } 39 | return \Response::json(json_encode($hours_worked)); 40 | 41 | } 42 | 43 | } 44 | -------------------------------------------------------------------------------- /app/MyApp/Domain/Entity/Project.php: -------------------------------------------------------------------------------- 1 | project_team = new \Doctrine\Common\Collections\ArrayCollection(); 42 | } 43 | 44 | /* 45 | * Get Project name 46 | * @return string 47 | */ 48 | public function getName() { 49 | return $this->name; 50 | } 51 | 52 | /* 53 | * Set the project name 54 | * @param string $name 55 | * @return void 56 | */ 57 | public function setName($name) { 58 | $this->name = $name; 59 | } 60 | 61 | /* 62 | * Get Project description 63 | * @return string 64 | */ 65 | public function getDescription() { 66 | return $this->description; 67 | } 68 | 69 | /* 70 | * Set the project description 71 | * @param string $description 72 | * @return void 73 | */ 74 | public function setDescription($description) { 75 | $this->description = $description; 76 | } 77 | 78 | /* 79 | * Get Project team 80 | * @return string 81 | */ 82 | public function getProjectTeam() { 83 | return $this->project_team; 84 | } 85 | 86 | /* 87 | * Return total number of hours worked by team 88 | * @return int 89 | */ 90 | public function calculateTotalHoursWorked() { 91 | 92 | $hours_worked = 0; 93 | foreach ($this->project_team as $team_member) { 94 | $hours_worked += $team_member->calculateHoursWorked(); 95 | } 96 | return $hours_worked; 97 | } 98 | 99 | 100 | } 101 | -------------------------------------------------------------------------------- /app/MyApp/Domain/Entity/TeamMember.php: -------------------------------------------------------------------------------- 1 | first_name.' '.$this->last_name; 38 | } 39 | 40 | /* 41 | * Set the team member first name 42 | * @param string $first_name 43 | * @return void 44 | */ 45 | public function setFirstName($first_name) { 46 | $this->first_name = $first_name; 47 | } 48 | 49 | /* 50 | * Set the team member last name 51 | * @param string $last_name 52 | * @return void 53 | */ 54 | public function setLastName($last_name) { 55 | $this->last_name = $last_name; 56 | } 57 | 58 | /* 59 | * Return total number of hours on project 60 | * @return int 61 | */ 62 | public function calculateHoursWorked() { 63 | 64 | //add method detail to calculate the hours worked 65 | $hours_worked = rand(5,50); 66 | return $hours_worked; 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /app/MyApp/Domain/Event/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glendaviesnz/laravel-ddd/0df86d4c25812c42897a9760df45f2fa2b8df08d/app/MyApp/Domain/Event/.gitkeep -------------------------------------------------------------------------------- /app/MyApp/Domain/Service/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glendaviesnz/laravel-ddd/0df86d4c25812c42897a9760df45f2fa2b8df08d/app/MyApp/Domain/Service/.gitkeep -------------------------------------------------------------------------------- /app/MyApp/Infrastructure/Repository/MetaData/MyApp.Domain.Entity.Project.dcm.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /app/MyApp/Infrastructure/Repository/MetaData/MyApp.Domain.Entity.TeamMember.dcm.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /app/MyApp/Infrastructure/Repository/Project.php: -------------------------------------------------------------------------------- 1 | 'pdo_mysql', 30 | 'host' => 'localhost', 31 | 'dbname' => 'laravelddd', 32 | 'user' => 'root', 33 | 'password' => 'root', 34 | 35 | ); 36 | 37 | return \Doctrine\ORM\EntityManager::create($conn, $config); 38 | }); 39 | 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /app/commands/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glendaviesnz/laravel-ddd/0df86d4c25812c42897a9760df45f2fa2b8df08d/app/commands/.gitkeep -------------------------------------------------------------------------------- /app/config/app.php: -------------------------------------------------------------------------------- 1 | true, 17 | 18 | /* 19 | |-------------------------------------------------------------------------- 20 | | Application URL 21 | |-------------------------------------------------------------------------- 22 | | 23 | | This URL is used by the console to properly generate URLs when using 24 | | the Artisan command line tool. You should set this to the root of 25 | | your application so that it is used when running Artisan tasks. 26 | | 27 | */ 28 | 29 | 'url' => 'http://localhost', 30 | 31 | /* 32 | |-------------------------------------------------------------------------- 33 | | Application Timezone 34 | |-------------------------------------------------------------------------- 35 | | 36 | | Here you may specify the default timezone for your application, which 37 | | will be used by the PHP date and date-time functions. We have gone 38 | | ahead and set this to a sensible default for you out of the box. 39 | | 40 | */ 41 | 42 | 'timezone' => 'UTC', 43 | 44 | /* 45 | |-------------------------------------------------------------------------- 46 | | Application Locale Configuration 47 | |-------------------------------------------------------------------------- 48 | | 49 | | The application locale determines the default locale that will be used 50 | | by the translation service provider. You are free to set this value 51 | | to any of the locales which will be supported by the application. 52 | | 53 | */ 54 | 55 | 'locale' => 'en', 56 | 57 | /* 58 | |-------------------------------------------------------------------------- 59 | | Application Fallback Locale 60 | |-------------------------------------------------------------------------- 61 | | 62 | | The fallback locale determines the locale to use when the current one 63 | | is not available. You may change the value to correspond to any of 64 | | the language folders that are provided through your application. 65 | | 66 | */ 67 | 68 | 'fallback_locale' => 'en', 69 | 70 | /* 71 | |-------------------------------------------------------------------------- 72 | | Encryption Key 73 | |-------------------------------------------------------------------------- 74 | | 75 | | This key is used by the Illuminate encrypter service and should be set 76 | | to a random, 32 character string, otherwise these encrypted strings 77 | | will not be safe. Please do this before deploying an application! 78 | | 79 | */ 80 | 81 | 'key' => 'YourSecretKey!!!', 82 | 83 | 'cipher' => MCRYPT_RIJNDAEL_128, 84 | 85 | /* 86 | |-------------------------------------------------------------------------- 87 | | Autoloaded Service Providers 88 | |-------------------------------------------------------------------------- 89 | | 90 | | The service providers listed here will be automatically loaded on the 91 | | request to your application. Feel free to add your own services to 92 | | this array to grant expanded functionality to your applications. 93 | | 94 | */ 95 | 96 | 'providers' => array( 97 | 98 | 'Illuminate\Foundation\Providers\ArtisanServiceProvider', 99 | 'Illuminate\Auth\AuthServiceProvider', 100 | 'Illuminate\Cache\CacheServiceProvider', 101 | 'Illuminate\Session\CommandsServiceProvider', 102 | 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider', 103 | 'Illuminate\Routing\ControllerServiceProvider', 104 | 'Illuminate\Cookie\CookieServiceProvider', 105 | 'Illuminate\Database\DatabaseServiceProvider', 106 | 'Illuminate\Encryption\EncryptionServiceProvider', 107 | 'Illuminate\Filesystem\FilesystemServiceProvider', 108 | 'Illuminate\Hashing\HashServiceProvider', 109 | 'Illuminate\Html\HtmlServiceProvider', 110 | 'Illuminate\Log\LogServiceProvider', 111 | 'Illuminate\Mail\MailServiceProvider', 112 | 'Illuminate\Database\MigrationServiceProvider', 113 | 'Illuminate\Pagination\PaginationServiceProvider', 114 | 'Illuminate\Queue\QueueServiceProvider', 115 | 'Illuminate\Redis\RedisServiceProvider', 116 | 'Illuminate\Remote\RemoteServiceProvider', 117 | 'Illuminate\Auth\Reminders\ReminderServiceProvider', 118 | 'Illuminate\Database\SeedServiceProvider', 119 | 'Illuminate\Session\SessionServiceProvider', 120 | 'Illuminate\Translation\TranslationServiceProvider', 121 | 'Illuminate\Validation\ValidationServiceProvider', 122 | 'Illuminate\View\ViewServiceProvider', 123 | 'Illuminate\Workbench\WorkbenchServiceProvider', 124 | 'MyApp\MyAppServiceProvider' 125 | 126 | ), 127 | 128 | /* 129 | |-------------------------------------------------------------------------- 130 | | Service Provider Manifest 131 | |-------------------------------------------------------------------------- 132 | | 133 | | The service provider manifest is used by Laravel to lazy load service 134 | | providers which are not needed for each request, as well to keep a 135 | | list of all of the services. Here, you may set its storage spot. 136 | | 137 | */ 138 | 139 | 'manifest' => storage_path().'/meta', 140 | 141 | /* 142 | |-------------------------------------------------------------------------- 143 | | Class Aliases 144 | |-------------------------------------------------------------------------- 145 | | 146 | | This array of class aliases will be registered when this application 147 | | is started. However, feel free to register as many as you wish as 148 | | the aliases are "lazy" loaded so they don't hinder performance. 149 | | 150 | */ 151 | 152 | 'aliases' => array( 153 | 154 | 'App' => 'Illuminate\Support\Facades\App', 155 | 'Artisan' => 'Illuminate\Support\Facades\Artisan', 156 | 'Auth' => 'Illuminate\Support\Facades\Auth', 157 | 'Blade' => 'Illuminate\Support\Facades\Blade', 158 | 'Cache' => 'Illuminate\Support\Facades\Cache', 159 | 'ClassLoader' => 'Illuminate\Support\ClassLoader', 160 | 'Config' => 'Illuminate\Support\Facades\Config', 161 | 'Controller' => 'Illuminate\Routing\Controller', 162 | 'Cookie' => 'Illuminate\Support\Facades\Cookie', 163 | 'Crypt' => 'Illuminate\Support\Facades\Crypt', 164 | 'DB' => 'Illuminate\Support\Facades\DB', 165 | 'Eloquent' => 'Illuminate\Database\Eloquent\Model', 166 | 'Event' => 'Illuminate\Support\Facades\Event', 167 | 'File' => 'Illuminate\Support\Facades\File', 168 | 'Form' => 'Illuminate\Support\Facades\Form', 169 | 'Hash' => 'Illuminate\Support\Facades\Hash', 170 | 'HTML' => 'Illuminate\Support\Facades\HTML', 171 | 'Input' => 'Illuminate\Support\Facades\Input', 172 | 'Lang' => 'Illuminate\Support\Facades\Lang', 173 | 'Log' => 'Illuminate\Support\Facades\Log', 174 | 'Mail' => 'Illuminate\Support\Facades\Mail', 175 | 'Paginator' => 'Illuminate\Support\Facades\Paginator', 176 | 'Password' => 'Illuminate\Support\Facades\Password', 177 | 'Queue' => 'Illuminate\Support\Facades\Queue', 178 | 'Redirect' => 'Illuminate\Support\Facades\Redirect', 179 | 'Redis' => 'Illuminate\Support\Facades\Redis', 180 | 'Request' => 'Illuminate\Support\Facades\Request', 181 | 'Response' => 'Illuminate\Support\Facades\Response', 182 | 'Route' => 'Illuminate\Support\Facades\Route', 183 | 'Schema' => 'Illuminate\Support\Facades\Schema', 184 | 'Seeder' => 'Illuminate\Database\Seeder', 185 | 'Session' => 'Illuminate\Support\Facades\Session', 186 | 'SoftDeletingTrait' => 'Illuminate\Database\Eloquent\SoftDeletingTrait', 187 | 'SSH' => 'Illuminate\Support\Facades\SSH', 188 | 'Str' => 'Illuminate\Support\Str', 189 | 'URL' => 'Illuminate\Support\Facades\URL', 190 | 'Validator' => 'Illuminate\Support\Facades\Validator', 191 | 'View' => 'Illuminate\Support\Facades\View', 192 | 193 | ), 194 | 195 | ); 196 | -------------------------------------------------------------------------------- /app/config/auth.php: -------------------------------------------------------------------------------- 1 | 'eloquent', 19 | 20 | /* 21 | |-------------------------------------------------------------------------- 22 | | Authentication Model 23 | |-------------------------------------------------------------------------- 24 | | 25 | | When using the "Eloquent" authentication driver, we need to know which 26 | | Eloquent model should be used to retrieve your users. Of course, it 27 | | is often just the "User" model but you may use whatever you like. 28 | | 29 | */ 30 | 31 | 'model' => 'User', 32 | 33 | /* 34 | |-------------------------------------------------------------------------- 35 | | Authentication Table 36 | |-------------------------------------------------------------------------- 37 | | 38 | | When using the "Database" authentication driver, we need to know which 39 | | table should be used to retrieve your users. We have chosen a basic 40 | | default value but you may easily change it to any table you like. 41 | | 42 | */ 43 | 44 | 'table' => 'users', 45 | 46 | /* 47 | |-------------------------------------------------------------------------- 48 | | Password Reminder Settings 49 | |-------------------------------------------------------------------------- 50 | | 51 | | Here you may set the settings for password reminders, including a view 52 | | that should be used as your password reminder e-mail. You will also 53 | | be able to set the name of the table that holds the reset tokens. 54 | | 55 | | The "expire" time is the number of minutes that the reminder should be 56 | | considered valid. This security feature keeps tokens short-lived so 57 | | they have less time to be guessed. You may change this as needed. 58 | | 59 | */ 60 | 61 | 'reminder' => array( 62 | 63 | 'email' => 'emails.auth.reminder', 64 | 65 | 'table' => 'password_reminders', 66 | 67 | 'expire' => 60, 68 | 69 | ), 70 | 71 | ); 72 | -------------------------------------------------------------------------------- /app/config/cache.php: -------------------------------------------------------------------------------- 1 | 'file', 19 | 20 | /* 21 | |-------------------------------------------------------------------------- 22 | | File Cache Location 23 | |-------------------------------------------------------------------------- 24 | | 25 | | When using the "file" cache driver, we need a location where the cache 26 | | files may be stored. A sensible default has been specified, but you 27 | | are free to change it to any other place on disk that you desire. 28 | | 29 | */ 30 | 31 | 'path' => storage_path().'/cache', 32 | 33 | /* 34 | |-------------------------------------------------------------------------- 35 | | Database Cache Connection 36 | |-------------------------------------------------------------------------- 37 | | 38 | | When using the "database" cache driver you may specify the connection 39 | | that should be used to store the cached items. When this option is 40 | | null the default database connection will be utilized for cache. 41 | | 42 | */ 43 | 44 | 'connection' => null, 45 | 46 | /* 47 | |-------------------------------------------------------------------------- 48 | | Database Cache Table 49 | |-------------------------------------------------------------------------- 50 | | 51 | | When using the "database" cache driver we need to know the table that 52 | | should be used to store the cached items. A default table name has 53 | | been provided but you're free to change it however you deem fit. 54 | | 55 | */ 56 | 57 | 'table' => 'cache', 58 | 59 | /* 60 | |-------------------------------------------------------------------------- 61 | | Memcached Servers 62 | |-------------------------------------------------------------------------- 63 | | 64 | | Now you may specify an array of your Memcached servers that should be 65 | | used when utilizing the Memcached cache driver. All of the servers 66 | | should contain a value for "host", "port", and "weight" options. 67 | | 68 | */ 69 | 70 | 'memcached' => array( 71 | 72 | array('host' => '127.0.0.1', 'port' => 11211, 'weight' => 100), 73 | 74 | ), 75 | 76 | /* 77 | |-------------------------------------------------------------------------- 78 | | Cache Key Prefix 79 | |-------------------------------------------------------------------------- 80 | | 81 | | When utilizing a RAM based store such as APC or Memcached, there might 82 | | be other applications utilizing the same cache. So, we'll specify a 83 | | value to get prefixed to all our keys so we can avoid collisions. 84 | | 85 | */ 86 | 87 | 'prefix' => 'laravel', 88 | 89 | ); 90 | -------------------------------------------------------------------------------- /app/config/compile.php: -------------------------------------------------------------------------------- 1 | PDO::FETCH_CLASS, 17 | 18 | /* 19 | |-------------------------------------------------------------------------- 20 | | Default Database Connection Name 21 | |-------------------------------------------------------------------------- 22 | | 23 | | Here you may specify which of the database connections below you wish 24 | | to use as your default connection for all database work. Of course 25 | | you may use many connections at once using the Database library. 26 | | 27 | */ 28 | 29 | 'default' => 'mysql', 30 | 31 | /* 32 | |-------------------------------------------------------------------------- 33 | | Database Connections 34 | |-------------------------------------------------------------------------- 35 | | 36 | | Here are each of the database connections setup for your application. 37 | | Of course, examples of configuring each database platform that is 38 | | supported by Laravel is shown below to make development simple. 39 | | 40 | | 41 | | All database work in Laravel is done through the PHP PDO facilities 42 | | so make sure you have the driver for your particular database of 43 | | choice installed on your machine before you begin development. 44 | | 45 | */ 46 | 47 | 'connections' => array( 48 | 49 | 'sqlite' => array( 50 | 'driver' => 'sqlite', 51 | 'database' => __DIR__.'/../database/production.sqlite', 52 | 'prefix' => '', 53 | ), 54 | 55 | 'mysql' => array( 56 | 'driver' => 'mysql', 57 | 'host' => 'localhost', 58 | 'database' => 'forge', 59 | 'username' => 'forge', 60 | 'password' => '', 61 | 'charset' => 'utf8', 62 | 'collation' => 'utf8_unicode_ci', 63 | 'prefix' => '', 64 | ), 65 | 66 | 'pgsql' => array( 67 | 'driver' => 'pgsql', 68 | 'host' => 'localhost', 69 | 'database' => 'forge', 70 | 'username' => 'forge', 71 | 'password' => '', 72 | 'charset' => 'utf8', 73 | 'prefix' => '', 74 | 'schema' => 'public', 75 | ), 76 | 77 | 'sqlsrv' => array( 78 | 'driver' => 'sqlsrv', 79 | 'host' => 'localhost', 80 | 'database' => 'database', 81 | 'username' => 'root', 82 | 'password' => '', 83 | 'prefix' => '', 84 | ), 85 | 86 | ), 87 | 88 | /* 89 | |-------------------------------------------------------------------------- 90 | | Migration Repository Table 91 | |-------------------------------------------------------------------------- 92 | | 93 | | This table keeps track of all the migrations that have already run for 94 | | your application. Using this information, we can determine which of 95 | | the migrations on disk haven't actually been run in the database. 96 | | 97 | */ 98 | 99 | 'migrations' => 'migrations', 100 | 101 | /* 102 | |-------------------------------------------------------------------------- 103 | | Redis Databases 104 | |-------------------------------------------------------------------------- 105 | | 106 | | Redis is an open source, fast, and advanced key-value store that also 107 | | provides a richer set of commands than a typical key-value systems 108 | | such as APC or Memcached. Laravel makes it easy to dig right in. 109 | | 110 | */ 111 | 112 | 'redis' => array( 113 | 114 | 'cluster' => false, 115 | 116 | 'default' => array( 117 | 'host' => '127.0.0.1', 118 | 'port' => 6379, 119 | 'database' => 0, 120 | ), 121 | 122 | ), 123 | 124 | ); 125 | -------------------------------------------------------------------------------- /app/config/local/app.php: -------------------------------------------------------------------------------- 1 | true, 17 | 18 | ); 19 | -------------------------------------------------------------------------------- /app/config/local/database.php: -------------------------------------------------------------------------------- 1 | array( 22 | 23 | 'mysql' => array( 24 | 'driver' => 'mysql', 25 | 'host' => 'localhost', 26 | 'database' => 'homestead', 27 | 'username' => 'homestead', 28 | 'password' => 'secret', 29 | 'charset' => 'utf8', 30 | 'collation' => 'utf8_unicode_ci', 31 | 'prefix' => '', 32 | ), 33 | 34 | 'pgsql' => array( 35 | 'driver' => 'pgsql', 36 | 'host' => 'localhost', 37 | 'database' => 'homestead', 38 | 'username' => 'homestead', 39 | 'password' => 'secret', 40 | 'charset' => 'utf8', 41 | 'prefix' => '', 42 | 'schema' => 'public', 43 | ), 44 | 45 | ), 46 | 47 | ); 48 | -------------------------------------------------------------------------------- /app/config/mail.php: -------------------------------------------------------------------------------- 1 | 'smtp', 19 | 20 | /* 21 | |-------------------------------------------------------------------------- 22 | | SMTP Host Address 23 | |-------------------------------------------------------------------------- 24 | | 25 | | Here you may provide the host address of the SMTP server used by your 26 | | applications. A default option is provided that is compatible with 27 | | the Mailgun mail service which will provide reliable deliveries. 28 | | 29 | */ 30 | 31 | 'host' => 'smtp.mailgun.org', 32 | 33 | /* 34 | |-------------------------------------------------------------------------- 35 | | SMTP Host Port 36 | |-------------------------------------------------------------------------- 37 | | 38 | | This is the SMTP port used by your application to deliver e-mails to 39 | | users of the application. Like the host we have set this value to 40 | | stay compatible with the Mailgun e-mail application by default. 41 | | 42 | */ 43 | 44 | 'port' => 587, 45 | 46 | /* 47 | |-------------------------------------------------------------------------- 48 | | Global "From" Address 49 | |-------------------------------------------------------------------------- 50 | | 51 | | You may wish for all e-mails sent by your application to be sent from 52 | | the same address. Here, you may specify a name and address that is 53 | | used globally for all e-mails that are sent by your application. 54 | | 55 | */ 56 | 57 | 'from' => array('address' => null, 'name' => null), 58 | 59 | /* 60 | |-------------------------------------------------------------------------- 61 | | E-Mail Encryption Protocol 62 | |-------------------------------------------------------------------------- 63 | | 64 | | Here you may specify the encryption protocol that should be used when 65 | | the application send e-mail messages. A sensible default using the 66 | | transport layer security protocol should provide great security. 67 | | 68 | */ 69 | 70 | 'encryption' => 'tls', 71 | 72 | /* 73 | |-------------------------------------------------------------------------- 74 | | SMTP Server Username 75 | |-------------------------------------------------------------------------- 76 | | 77 | | If your SMTP server requires a username for authentication, you should 78 | | set it here. This will get used to authenticate with your server on 79 | | connection. You may also set the "password" value below this one. 80 | | 81 | */ 82 | 83 | 'username' => null, 84 | 85 | /* 86 | |-------------------------------------------------------------------------- 87 | | SMTP Server Password 88 | |-------------------------------------------------------------------------- 89 | | 90 | | Here you may set the password required by your SMTP server to send out 91 | | messages from your application. This will be given to the server on 92 | | connection so that the application will be able to send messages. 93 | | 94 | */ 95 | 96 | 'password' => null, 97 | 98 | /* 99 | |-------------------------------------------------------------------------- 100 | | Sendmail System Path 101 | |-------------------------------------------------------------------------- 102 | | 103 | | When using the "sendmail" driver to send e-mails, we will need to know 104 | | the path to where Sendmail lives on this server. A default path has 105 | | been provided here, which will work well on most of your systems. 106 | | 107 | */ 108 | 109 | 'sendmail' => '/usr/sbin/sendmail -bs', 110 | 111 | /* 112 | |-------------------------------------------------------------------------- 113 | | Mail "Pretend" 114 | |-------------------------------------------------------------------------- 115 | | 116 | | When this option is enabled, e-mail will not actually be sent over the 117 | | web and will instead be written to your application's logs files so 118 | | you may inspect the message. This is great for local development. 119 | | 120 | */ 121 | 122 | 'pretend' => false, 123 | 124 | ); 125 | -------------------------------------------------------------------------------- /app/config/packages/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glendaviesnz/laravel-ddd/0df86d4c25812c42897a9760df45f2fa2b8df08d/app/config/packages/.gitkeep -------------------------------------------------------------------------------- /app/config/queue.php: -------------------------------------------------------------------------------- 1 | 'sync', 19 | 20 | /* 21 | |-------------------------------------------------------------------------- 22 | | Queue Connections 23 | |-------------------------------------------------------------------------- 24 | | 25 | | Here you may configure the connection information for each server that 26 | | is used by your application. A default configuration has been added 27 | | for each back-end shipped with Laravel. You are free to add more. 28 | | 29 | */ 30 | 31 | 'connections' => array( 32 | 33 | 'sync' => array( 34 | 'driver' => 'sync', 35 | ), 36 | 37 | 'beanstalkd' => array( 38 | 'driver' => 'beanstalkd', 39 | 'host' => 'localhost', 40 | 'queue' => 'default', 41 | 'ttr' => 60, 42 | ), 43 | 44 | 'sqs' => array( 45 | 'driver' => 'sqs', 46 | 'key' => 'your-public-key', 47 | 'secret' => 'your-secret-key', 48 | 'queue' => 'your-queue-url', 49 | 'region' => 'us-east-1', 50 | ), 51 | 52 | 'iron' => array( 53 | 'driver' => 'iron', 54 | 'host' => 'mq-aws-us-east-1.iron.io', 55 | 'token' => 'your-token', 56 | 'project' => 'your-project-id', 57 | 'queue' => 'your-queue-name', 58 | 'encrypt' => true, 59 | ), 60 | 61 | 'redis' => array( 62 | 'driver' => 'redis', 63 | 'queue' => 'default', 64 | ), 65 | 66 | ), 67 | 68 | /* 69 | |-------------------------------------------------------------------------- 70 | | Failed Queue Jobs 71 | |-------------------------------------------------------------------------- 72 | | 73 | | These options configure the behavior of failed queue job logging so you 74 | | can control which database and table are used to store the jobs that 75 | | have failed. You may change them to any database / table you wish. 76 | | 77 | */ 78 | 79 | 'failed' => array( 80 | 81 | 'database' => 'mysql', 'table' => 'failed_jobs', 82 | 83 | ), 84 | 85 | ); 86 | -------------------------------------------------------------------------------- /app/config/remote.php: -------------------------------------------------------------------------------- 1 | 'production', 17 | 18 | /* 19 | |-------------------------------------------------------------------------- 20 | | Remote Server Connections 21 | |-------------------------------------------------------------------------- 22 | | 23 | | These are the servers that will be accessible via the SSH task runner 24 | | facilities of Laravel. This feature radically simplifies executing 25 | | tasks on your servers, such as deploying out these applications. 26 | | 27 | */ 28 | 29 | 'connections' => array( 30 | 31 | 'production' => array( 32 | 'host' => '', 33 | 'username' => '', 34 | 'password' => '', 35 | 'key' => '', 36 | 'keyphrase' => '', 37 | 'root' => '/var/www', 38 | ), 39 | 40 | ), 41 | 42 | /* 43 | |-------------------------------------------------------------------------- 44 | | Remote Server Groups 45 | |-------------------------------------------------------------------------- 46 | | 47 | | Here you may list connections under a single group name, which allows 48 | | you to easily access all of the servers at once using a short name 49 | | that is extremely easy to remember, such as "web" or "database". 50 | | 51 | */ 52 | 53 | 'groups' => array( 54 | 55 | 'web' => array('production') 56 | 57 | ), 58 | 59 | ); 60 | -------------------------------------------------------------------------------- /app/config/services.php: -------------------------------------------------------------------------------- 1 | array( 18 | 'domain' => '', 19 | 'secret' => '', 20 | ), 21 | 22 | 'mandrill' => array( 23 | 'secret' => '', 24 | ), 25 | 26 | 'stripe' => array( 27 | 'model' => 'User', 28 | 'secret' => '', 29 | ), 30 | 31 | ); 32 | -------------------------------------------------------------------------------- /app/config/session.php: -------------------------------------------------------------------------------- 1 | 'file', 20 | 21 | /* 22 | |-------------------------------------------------------------------------- 23 | | Session Lifetime 24 | |-------------------------------------------------------------------------- 25 | | 26 | | Here you may specify the number of minutes that you wish the session 27 | | to be allowed to remain idle before it expires. If you want them 28 | | to immediately expire on the browser closing, set that option. 29 | | 30 | */ 31 | 32 | 'lifetime' => 120, 33 | 34 | 'expire_on_close' => false, 35 | 36 | /* 37 | |-------------------------------------------------------------------------- 38 | | Session File Location 39 | |-------------------------------------------------------------------------- 40 | | 41 | | When using the native session driver, we need a location where session 42 | | files may be stored. A default has been set for you but a different 43 | | location may be specified. This is only needed for file sessions. 44 | | 45 | */ 46 | 47 | 'files' => storage_path().'/sessions', 48 | 49 | /* 50 | |-------------------------------------------------------------------------- 51 | | Session Database Connection 52 | |-------------------------------------------------------------------------- 53 | | 54 | | When using the "database" or "redis" session drivers, you may specify a 55 | | connection that should be used to manage these sessions. This should 56 | | correspond to a connection in your database configuration options. 57 | | 58 | */ 59 | 60 | 'connection' => null, 61 | 62 | /* 63 | |-------------------------------------------------------------------------- 64 | | Session Database Table 65 | |-------------------------------------------------------------------------- 66 | | 67 | | When using the "database" session driver, you may specify the table we 68 | | should use to manage the sessions. Of course, a sensible default is 69 | | provided for you; however, you are free to change this as needed. 70 | | 71 | */ 72 | 73 | 'table' => 'sessions', 74 | 75 | /* 76 | |-------------------------------------------------------------------------- 77 | | Session Sweeping Lottery 78 | |-------------------------------------------------------------------------- 79 | | 80 | | Some session drivers must manually sweep their storage location to get 81 | | rid of old sessions from storage. Here are the chances that it will 82 | | happen on a given request. By default, the odds are 2 out of 100. 83 | | 84 | */ 85 | 86 | 'lottery' => array(2, 100), 87 | 88 | /* 89 | |-------------------------------------------------------------------------- 90 | | Session Cookie Name 91 | |-------------------------------------------------------------------------- 92 | | 93 | | Here you may change the name of the cookie used to identify a session 94 | | instance by ID. The name specified here will get used every time a 95 | | new session cookie is created by the framework for every driver. 96 | | 97 | */ 98 | 99 | 'cookie' => 'laravel_session', 100 | 101 | /* 102 | |-------------------------------------------------------------------------- 103 | | Session Cookie Path 104 | |-------------------------------------------------------------------------- 105 | | 106 | | The session cookie path determines the path for which the cookie will 107 | | be regarded as available. Typically, this will be the root path of 108 | | your application but you are free to change this when necessary. 109 | | 110 | */ 111 | 112 | 'path' => '/', 113 | 114 | /* 115 | |-------------------------------------------------------------------------- 116 | | Session Cookie Domain 117 | |-------------------------------------------------------------------------- 118 | | 119 | | Here you may change the domain of the cookie used to identify a session 120 | | in your application. This will determine which domains the cookie is 121 | | available to in your application. A sensible default has been set. 122 | | 123 | */ 124 | 125 | 'domain' => null, 126 | 127 | /* 128 | |-------------------------------------------------------------------------- 129 | | HTTPS Only Cookies 130 | |-------------------------------------------------------------------------- 131 | | 132 | | By setting this option to true, session cookies will only be sent back 133 | | to the server if the browser has a HTTPS connection. This will keep 134 | | the cookie from being sent to you if it can not be done securely. 135 | | 136 | */ 137 | 138 | 'secure' => false, 139 | 140 | ); 141 | -------------------------------------------------------------------------------- /app/config/testing/cache.php: -------------------------------------------------------------------------------- 1 | 'array', 19 | 20 | ); 21 | -------------------------------------------------------------------------------- /app/config/testing/session.php: -------------------------------------------------------------------------------- 1 | 'array', 20 | 21 | ); 22 | -------------------------------------------------------------------------------- /app/config/view.php: -------------------------------------------------------------------------------- 1 | array(__DIR__.'/../views'), 17 | 18 | /* 19 | |-------------------------------------------------------------------------- 20 | | Pagination View 21 | |-------------------------------------------------------------------------- 22 | | 23 | | This view will be used to render the pagination link output, and can 24 | | be easily customized here to show any view you like. A clean view 25 | | compatible with Twitter's Bootstrap is given to you by default. 26 | | 27 | */ 28 | 29 | 'pagination' => 'pagination::slider-3', 30 | 31 | ); 32 | -------------------------------------------------------------------------------- /app/config/workbench.php: -------------------------------------------------------------------------------- 1 | '', 17 | 18 | /* 19 | |-------------------------------------------------------------------------- 20 | | Workbench Author E-Mail Address 21 | |-------------------------------------------------------------------------- 22 | | 23 | | Like the option above, your e-mail address is used when generating new 24 | | workbench packages. The e-mail is placed in your composer.json file 25 | | automatically after the package is created by the workbench tool. 26 | | 27 | */ 28 | 29 | 'email' => '', 30 | 31 | ); 32 | -------------------------------------------------------------------------------- /app/database/migrations/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glendaviesnz/laravel-ddd/0df86d4c25812c42897a9760df45f2fa2b8df08d/app/database/migrations/.gitkeep -------------------------------------------------------------------------------- /app/database/production.sqlite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glendaviesnz/laravel-ddd/0df86d4c25812c42897a9760df45f2fa2b8df08d/app/database/production.sqlite -------------------------------------------------------------------------------- /app/database/seeds/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glendaviesnz/laravel-ddd/0df86d4c25812c42897a9760df45f2fa2b8df08d/app/database/seeds/.gitkeep -------------------------------------------------------------------------------- /app/database/seeds/DatabaseSeeder.php: -------------------------------------------------------------------------------- 1 | call('UserTableSeeder'); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /app/filters.php: -------------------------------------------------------------------------------- 1 | '« Previous', 17 | 18 | 'next' => 'Next »', 19 | 20 | ); 21 | -------------------------------------------------------------------------------- /app/lang/en/reminders.php: -------------------------------------------------------------------------------- 1 | "Passwords must be at least six characters and match the confirmation.", 17 | 18 | "user" => "We can't find a user with that e-mail address.", 19 | 20 | "token" => "This password reset token is invalid.", 21 | 22 | "sent" => "Password reminder sent!", 23 | 24 | ); 25 | -------------------------------------------------------------------------------- /app/lang/en/validation.php: -------------------------------------------------------------------------------- 1 | "The :attribute must be accepted.", 17 | "active_url" => "The :attribute is not a valid URL.", 18 | "after" => "The :attribute must be a date after :date.", 19 | "alpha" => "The :attribute may only contain letters.", 20 | "alpha_dash" => "The :attribute may only contain letters, numbers, and dashes.", 21 | "alpha_num" => "The :attribute may only contain letters and numbers.", 22 | "array" => "The :attribute must be an array.", 23 | "before" => "The :attribute must be a date before :date.", 24 | "between" => array( 25 | "numeric" => "The :attribute must be between :min and :max.", 26 | "file" => "The :attribute must be between :min and :max kilobytes.", 27 | "string" => "The :attribute must be between :min and :max characters.", 28 | "array" => "The :attribute must have between :min and :max items.", 29 | ), 30 | "boolean" => "The :attribute field must be true or false", 31 | "confirmed" => "The :attribute confirmation does not match.", 32 | "date" => "The :attribute is not a valid date.", 33 | "date_format" => "The :attribute does not match the format :format.", 34 | "different" => "The :attribute and :other must be different.", 35 | "digits" => "The :attribute must be :digits digits.", 36 | "digits_between" => "The :attribute must be between :min and :max digits.", 37 | "email" => "The :attribute must be a valid email address.", 38 | "exists" => "The selected :attribute is invalid.", 39 | "image" => "The :attribute must be an image.", 40 | "in" => "The selected :attribute is invalid.", 41 | "integer" => "The :attribute must be an integer.", 42 | "ip" => "The :attribute must be a valid IP address.", 43 | "max" => array( 44 | "numeric" => "The :attribute may not be greater than :max.", 45 | "file" => "The :attribute may not be greater than :max kilobytes.", 46 | "string" => "The :attribute may not be greater than :max characters.", 47 | "array" => "The :attribute may not have more than :max items.", 48 | ), 49 | "mimes" => "The :attribute must be a file of type: :values.", 50 | "min" => array( 51 | "numeric" => "The :attribute must be at least :min.", 52 | "file" => "The :attribute must be at least :min kilobytes.", 53 | "string" => "The :attribute must be at least :min characters.", 54 | "array" => "The :attribute must have at least :min items.", 55 | ), 56 | "not_in" => "The selected :attribute is invalid.", 57 | "numeric" => "The :attribute must be a number.", 58 | "regex" => "The :attribute format is invalid.", 59 | "required" => "The :attribute field is required.", 60 | "required_if" => "The :attribute field is required when :other is :value.", 61 | "required_with" => "The :attribute field is required when :values is present.", 62 | "required_with_all" => "The :attribute field is required when :values is present.", 63 | "required_without" => "The :attribute field is required when :values is not present.", 64 | "required_without_all" => "The :attribute field is required when none of :values are present.", 65 | "same" => "The :attribute and :other must match.", 66 | "size" => array( 67 | "numeric" => "The :attribute must be :size.", 68 | "file" => "The :attribute must be :size kilobytes.", 69 | "string" => "The :attribute must be :size characters.", 70 | "array" => "The :attribute must contain :size items.", 71 | ), 72 | "unique" => "The :attribute has already been taken.", 73 | "url" => "The :attribute format is invalid.", 74 | 75 | /* 76 | |-------------------------------------------------------------------------- 77 | | Custom Validation Language Lines 78 | |-------------------------------------------------------------------------- 79 | | 80 | | Here you may specify custom validation messages for attributes using the 81 | | convention "attribute.rule" to name the lines. This makes it quick to 82 | | specify a specific custom language line for a given attribute rule. 83 | | 84 | */ 85 | 86 | 'custom' => array( 87 | 'attribute-name' => array( 88 | 'rule-name' => 'custom-message', 89 | ), 90 | ), 91 | 92 | /* 93 | |-------------------------------------------------------------------------- 94 | | Custom Validation Attributes 95 | |-------------------------------------------------------------------------- 96 | | 97 | | The following language lines are used to swap attribute place-holders 98 | | with something more reader friendly such as E-Mail Address instead 99 | | of "email". This simply helps us make messages a little cleaner. 100 | | 101 | */ 102 | 103 | 'attributes' => array(), 104 | 105 | ); 106 | -------------------------------------------------------------------------------- /app/routes.php: -------------------------------------------------------------------------------- 1 | 'api'), function() { 18 | 19 | Route::resource('/projects', 'MyApp\Application\API\Controllers\ProjectsController'); 20 | 21 | }); -------------------------------------------------------------------------------- /app/start/artisan.php: -------------------------------------------------------------------------------- 1 | client->request('GET', '/'); 13 | 14 | $this->assertTrue($this->client->getResponse()->isOk()); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /app/tests/TestCase.php: -------------------------------------------------------------------------------- 1 | setRequestForConsoleEnvironment(); 45 | 46 | $artisan = Illuminate\Console\Application::start($app); 47 | 48 | /* 49 | |-------------------------------------------------------------------------- 50 | | Run The Artisan Application 51 | |-------------------------------------------------------------------------- 52 | | 53 | | When we run the console application, the current CLI command will be 54 | | executed in this console and the response sent back to a terminal 55 | | or another output device for the developers. Here goes nothing! 56 | | 57 | */ 58 | 59 | $status = $artisan->run(); 60 | 61 | /* 62 | |-------------------------------------------------------------------------- 63 | | Shutdown The Application 64 | |-------------------------------------------------------------------------- 65 | | 66 | | Once Artisan has finished running. We will fire off the shutdown events 67 | | so that any final work may be done by the application before we shut 68 | | down the process. This is the last thing to happen to the request. 69 | | 70 | */ 71 | 72 | $app->shutdown(); 73 | 74 | exit($status); 75 | -------------------------------------------------------------------------------- /bootstrap/autoload.php: -------------------------------------------------------------------------------- 1 | __DIR__.'/../app', 17 | 18 | /* 19 | |-------------------------------------------------------------------------- 20 | | Public Path 21 | |-------------------------------------------------------------------------- 22 | | 23 | | The public path contains the assets for your web application, such as 24 | | your JavaScript and CSS files, and also contains the primary entry 25 | | point for web requests into these applications from the outside. 26 | | 27 | */ 28 | 29 | 'public' => __DIR__.'/../public', 30 | 31 | /* 32 | |-------------------------------------------------------------------------- 33 | | Base Path 34 | |-------------------------------------------------------------------------- 35 | | 36 | | The base path is the root of the Laravel installation. Most likely you 37 | | will not need to change this value. But, if for some wild reason it 38 | | is necessary you will do so here, just proceed with some caution. 39 | | 40 | */ 41 | 42 | 'base' => __DIR__.'/..', 43 | 44 | /* 45 | |-------------------------------------------------------------------------- 46 | | Storage Path 47 | |-------------------------------------------------------------------------- 48 | | 49 | | The storage path is used by Laravel to store cached Blade views, logs 50 | | and other pieces of information. You may modify the path here when 51 | | you want to change the location of this directory for your apps. 52 | | 53 | */ 54 | 55 | 'storage' => __DIR__.'/../app/storage', 56 | 57 | ); 58 | -------------------------------------------------------------------------------- /bootstrap/start.php: -------------------------------------------------------------------------------- 1 | detectEnvironment(array( 28 | 29 | 'local' => array('homestead'), 30 | 31 | )); 32 | 33 | /* 34 | |-------------------------------------------------------------------------- 35 | | Bind Paths 36 | |-------------------------------------------------------------------------- 37 | | 38 | | Here we are binding the paths configured in paths.php to the app. You 39 | | should not be changing these here. If you need to change these you 40 | | may do so within the paths.php file and they will be bound here. 41 | | 42 | */ 43 | 44 | $app->bindInstallPaths(require __DIR__.'/paths.php'); 45 | 46 | /* 47 | |-------------------------------------------------------------------------- 48 | | Load The Application 49 | |-------------------------------------------------------------------------- 50 | | 51 | | Here we will load this Illuminate application. We will keep this in a 52 | | separate location so we can isolate the creation of an application 53 | | from the actual running of the application with a given request. 54 | | 55 | */ 56 | 57 | $framework = $app['path.base']. 58 | '/vendor/laravel/framework/src'; 59 | 60 | require $framework.'/Illuminate/Foundation/start.php'; 61 | 62 | /* 63 | |-------------------------------------------------------------------------- 64 | | Return The Application 65 | |-------------------------------------------------------------------------- 66 | | 67 | | This script returns the application instance. The instance is given to 68 | | the calling script so we can separate the building of the instances 69 | | from the actual running of the application and sending responses. 70 | | 71 | */ 72 | 73 | return $app; 74 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "laravel/laravel", 3 | "description": "The Laravel Framework.", 4 | "keywords": ["framework", "laravel"], 5 | "license": "MIT", 6 | "require": { 7 | "laravel/framework": "4.2.*", 8 | "doctrine/orm": "2.4.*" 9 | }, 10 | "autoload": { 11 | "classmap": [ 12 | "app/commands", 13 | "app/controllers", 14 | "app/models", 15 | "app/database/migrations", 16 | "app/database/seeds", 17 | "app/tests/TestCase.php" 18 | ], 19 | "psr-4": { 20 | "MyApp\\": "app/MyApp" 21 | 22 | }, 23 | "scripts": { 24 | "post-install-cmd": [ 25 | "php artisan clear-compiled", 26 | "php artisan optimize" 27 | ], 28 | "post-update-cmd": [ 29 | "php artisan clear-compiled", 30 | "php artisan optimize" 31 | ], 32 | "post-create-project-cmd": [ 33 | "php artisan key:generate" 34 | ] 35 | }, 36 | "config": { 37 | "preferred-install": "dist" 38 | }, 39 | "minimum-stability": "stable" 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /composer.lock: -------------------------------------------------------------------------------- 1 | { 2 | "_readme": [ 3 | "This file locks the dependencies of your project to a known state", 4 | "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", 5 | "This file is @generated automatically" 6 | ], 7 | "hash": "ee8dc90b96e306ae5d2d950122601131", 8 | "packages": [ 9 | { 10 | "name": "classpreloader/classpreloader", 11 | "version": "1.0.2", 12 | "source": { 13 | "type": "git", 14 | "url": "https://github.com/mtdowling/ClassPreloader.git", 15 | "reference": "2c9f3bcbab329570c57339895bd11b5dd3b00877" 16 | }, 17 | "dist": { 18 | "type": "zip", 19 | "url": "https://api.github.com/repos/mtdowling/ClassPreloader/zipball/2c9f3bcbab329570c57339895bd11b5dd3b00877", 20 | "reference": "2c9f3bcbab329570c57339895bd11b5dd3b00877", 21 | "shasum": "" 22 | }, 23 | "require": { 24 | "nikic/php-parser": "~0.9", 25 | "php": ">=5.3.3", 26 | "symfony/console": "~2.1", 27 | "symfony/filesystem": "~2.1", 28 | "symfony/finder": "~2.1" 29 | }, 30 | "bin": [ 31 | "classpreloader.php" 32 | ], 33 | "type": "library", 34 | "extra": { 35 | "branch-alias": { 36 | "dev-master": "1.0-dev" 37 | } 38 | }, 39 | "autoload": { 40 | "psr-0": { 41 | "ClassPreloader": "src/" 42 | } 43 | }, 44 | "notification-url": "https://packagist.org/downloads/", 45 | "license": [ 46 | "MIT" 47 | ], 48 | "description": "Helps class loading performance by generating a single PHP file containing all of the autoloaded files for a specific use case", 49 | "keywords": [ 50 | "autoload", 51 | "class", 52 | "preload" 53 | ], 54 | "time": "2014-03-12 00:05:31" 55 | }, 56 | { 57 | "name": "d11wtq/boris", 58 | "version": "v1.0.8", 59 | "source": { 60 | "type": "git", 61 | "url": "https://github.com/d11wtq/boris.git", 62 | "reference": "125dd4e5752639af7678a22ea597115646d89c6e" 63 | }, 64 | "dist": { 65 | "type": "zip", 66 | "url": "https://api.github.com/repos/d11wtq/boris/zipball/125dd4e5752639af7678a22ea597115646d89c6e", 67 | "reference": "125dd4e5752639af7678a22ea597115646d89c6e", 68 | "shasum": "" 69 | }, 70 | "require": { 71 | "php": ">=5.3.0" 72 | }, 73 | "suggest": { 74 | "ext-pcntl": "*", 75 | "ext-posix": "*", 76 | "ext-readline": "*" 77 | }, 78 | "bin": [ 79 | "bin/boris" 80 | ], 81 | "type": "library", 82 | "autoload": { 83 | "psr-0": { 84 | "Boris": "lib" 85 | } 86 | }, 87 | "notification-url": "https://packagist.org/downloads/", 88 | "time": "2014-01-17 12:21:18" 89 | }, 90 | { 91 | "name": "doctrine/annotations", 92 | "version": "v1.1.2", 93 | "source": { 94 | "type": "git", 95 | "url": "https://github.com/doctrine/annotations.git", 96 | "reference": "40db0c96985aab2822edbc4848b3bd2429e02670" 97 | }, 98 | "dist": { 99 | "type": "zip", 100 | "url": "https://api.github.com/repos/doctrine/annotations/zipball/40db0c96985aab2822edbc4848b3bd2429e02670", 101 | "reference": "40db0c96985aab2822edbc4848b3bd2429e02670", 102 | "shasum": "" 103 | }, 104 | "require": { 105 | "doctrine/lexer": "1.*", 106 | "php": ">=5.3.2" 107 | }, 108 | "require-dev": { 109 | "doctrine/cache": "1.*" 110 | }, 111 | "type": "library", 112 | "extra": { 113 | "branch-alias": { 114 | "dev-master": "1.0.x-dev" 115 | } 116 | }, 117 | "autoload": { 118 | "psr-0": { 119 | "Doctrine\\Common\\Annotations\\": "lib/" 120 | } 121 | }, 122 | "notification-url": "https://packagist.org/downloads/", 123 | "license": [ 124 | "MIT" 125 | ], 126 | "authors": [ 127 | { 128 | "name": "Jonathan H. Wage", 129 | "email": "jonwage@gmail.com", 130 | "homepage": "http://www.jwage.com/", 131 | "role": "Creator" 132 | }, 133 | { 134 | "name": "Guilherme Blanco", 135 | "email": "guilhermeblanco@gmail.com", 136 | "homepage": "http://www.instaclick.com" 137 | }, 138 | { 139 | "name": "Roman Borschel", 140 | "email": "roman@code-factory.org" 141 | }, 142 | { 143 | "name": "Benjamin Eberlei", 144 | "email": "kontakt@beberlei.de" 145 | }, 146 | { 147 | "name": "Johannes Schmitt", 148 | "email": "schmittjoh@gmail.com", 149 | "homepage": "http://jmsyst.com", 150 | "role": "Developer of wrapped JMSSerializerBundle" 151 | } 152 | ], 153 | "description": "Docblock Annotations Parser", 154 | "homepage": "http://www.doctrine-project.org", 155 | "keywords": [ 156 | "annotations", 157 | "docblock", 158 | "parser" 159 | ], 160 | "time": "2013-06-16 21:33:03" 161 | }, 162 | { 163 | "name": "doctrine/cache", 164 | "version": "v1.3.0", 165 | "source": { 166 | "type": "git", 167 | "url": "https://github.com/doctrine/cache.git", 168 | "reference": "e16d7adf45664a50fa86f515b6d5e7f670130449" 169 | }, 170 | "dist": { 171 | "type": "zip", 172 | "url": "https://api.github.com/repos/doctrine/cache/zipball/e16d7adf45664a50fa86f515b6d5e7f670130449", 173 | "reference": "e16d7adf45664a50fa86f515b6d5e7f670130449", 174 | "shasum": "" 175 | }, 176 | "require": { 177 | "php": ">=5.3.2" 178 | }, 179 | "conflict": { 180 | "doctrine/common": ">2.2,<2.4" 181 | }, 182 | "require-dev": { 183 | "phpunit/phpunit": ">=3.7", 184 | "satooshi/php-coveralls": "~0.6" 185 | }, 186 | "type": "library", 187 | "extra": { 188 | "branch-alias": { 189 | "dev-master": "1.0.x-dev" 190 | } 191 | }, 192 | "autoload": { 193 | "psr-0": { 194 | "Doctrine\\Common\\Cache\\": "lib/" 195 | } 196 | }, 197 | "notification-url": "https://packagist.org/downloads/", 198 | "license": [ 199 | "MIT" 200 | ], 201 | "authors": [ 202 | { 203 | "name": "Jonathan H. Wage", 204 | "email": "jonwage@gmail.com", 205 | "homepage": "http://www.jwage.com/", 206 | "role": "Creator" 207 | }, 208 | { 209 | "name": "Guilherme Blanco", 210 | "email": "guilhermeblanco@gmail.com", 211 | "homepage": "http://www.instaclick.com" 212 | }, 213 | { 214 | "name": "Roman Borschel", 215 | "email": "roman@code-factory.org" 216 | }, 217 | { 218 | "name": "Benjamin Eberlei", 219 | "email": "kontakt@beberlei.de" 220 | }, 221 | { 222 | "name": "Johannes Schmitt", 223 | "email": "schmittjoh@gmail.com", 224 | "homepage": "http://jmsyst.com", 225 | "role": "Developer of wrapped JMSSerializerBundle" 226 | } 227 | ], 228 | "description": "Caching library offering an object-oriented API for many cache backends", 229 | "homepage": "http://www.doctrine-project.org", 230 | "keywords": [ 231 | "cache", 232 | "caching" 233 | ], 234 | "time": "2013-10-25 19:04:14" 235 | }, 236 | { 237 | "name": "doctrine/collections", 238 | "version": "v1.2", 239 | "source": { 240 | "type": "git", 241 | "url": "https://github.com/doctrine/collections.git", 242 | "reference": "b99c5c46c87126201899afe88ec490a25eedd6a2" 243 | }, 244 | "dist": { 245 | "type": "zip", 246 | "url": "https://api.github.com/repos/doctrine/collections/zipball/b99c5c46c87126201899afe88ec490a25eedd6a2", 247 | "reference": "b99c5c46c87126201899afe88ec490a25eedd6a2", 248 | "shasum": "" 249 | }, 250 | "require": { 251 | "php": ">=5.3.2" 252 | }, 253 | "type": "library", 254 | "extra": { 255 | "branch-alias": { 256 | "dev-master": "1.2.x-dev" 257 | } 258 | }, 259 | "autoload": { 260 | "psr-0": { 261 | "Doctrine\\Common\\Collections\\": "lib/" 262 | } 263 | }, 264 | "notification-url": "https://packagist.org/downloads/", 265 | "license": [ 266 | "MIT" 267 | ], 268 | "authors": [ 269 | { 270 | "name": "Jonathan Wage", 271 | "email": "jonwage@gmail.com", 272 | "homepage": "http://www.jwage.com/", 273 | "role": "Creator" 274 | }, 275 | { 276 | "name": "Guilherme Blanco", 277 | "email": "guilhermeblanco@gmail.com", 278 | "homepage": "http://www.instaclick.com" 279 | }, 280 | { 281 | "name": "Roman Borschel", 282 | "email": "roman@code-factory.org" 283 | }, 284 | { 285 | "name": "Benjamin Eberlei", 286 | "email": "kontakt@beberlei.de" 287 | }, 288 | { 289 | "name": "Johannes Schmitt", 290 | "email": "schmittjoh@gmail.com", 291 | "homepage": "http://jmsyst.com", 292 | "role": "Developer of wrapped JMSSerializerBundle" 293 | } 294 | ], 295 | "description": "Collections Abstraction library", 296 | "homepage": "http://www.doctrine-project.org", 297 | "keywords": [ 298 | "array", 299 | "collections", 300 | "iterator" 301 | ], 302 | "time": "2014-02-03 23:07:43" 303 | }, 304 | { 305 | "name": "doctrine/common", 306 | "version": "v2.4.2", 307 | "source": { 308 | "type": "git", 309 | "url": "https://github.com/doctrine/common.git", 310 | "reference": "5db6ab40e4c531f14dad4ca96a394dfce5d4255b" 311 | }, 312 | "dist": { 313 | "type": "zip", 314 | "url": "https://api.github.com/repos/doctrine/common/zipball/5db6ab40e4c531f14dad4ca96a394dfce5d4255b", 315 | "reference": "5db6ab40e4c531f14dad4ca96a394dfce5d4255b", 316 | "shasum": "" 317 | }, 318 | "require": { 319 | "doctrine/annotations": "1.*", 320 | "doctrine/cache": "1.*", 321 | "doctrine/collections": "1.*", 322 | "doctrine/inflector": "1.*", 323 | "doctrine/lexer": "1.*", 324 | "php": ">=5.3.2" 325 | }, 326 | "require-dev": { 327 | "phpunit/phpunit": "~3.7" 328 | }, 329 | "type": "library", 330 | "extra": { 331 | "branch-alias": { 332 | "dev-master": "2.4.x-dev" 333 | } 334 | }, 335 | "autoload": { 336 | "psr-0": { 337 | "Doctrine\\Common\\": "lib/" 338 | } 339 | }, 340 | "notification-url": "https://packagist.org/downloads/", 341 | "license": [ 342 | "MIT" 343 | ], 344 | "authors": [ 345 | { 346 | "name": "Jonathan Wage", 347 | "email": "jonwage@gmail.com", 348 | "homepage": "http://www.jwage.com/", 349 | "role": "Creator" 350 | }, 351 | { 352 | "name": "Guilherme Blanco", 353 | "email": "guilhermeblanco@gmail.com", 354 | "homepage": "http://www.instaclick.com" 355 | }, 356 | { 357 | "name": "Roman Borschel", 358 | "email": "roman@code-factory.org" 359 | }, 360 | { 361 | "name": "Benjamin Eberlei", 362 | "email": "kontakt@beberlei.de" 363 | }, 364 | { 365 | "name": "Johannes Schmitt", 366 | "email": "schmittjoh@gmail.com", 367 | "homepage": "http://jmsyst.com", 368 | "role": "Developer of wrapped JMSSerializerBundle" 369 | } 370 | ], 371 | "description": "Common Library for Doctrine projects", 372 | "homepage": "http://www.doctrine-project.org", 373 | "keywords": [ 374 | "annotations", 375 | "collections", 376 | "eventmanager", 377 | "persistence", 378 | "spl" 379 | ], 380 | "time": "2014-05-21 19:28:51" 381 | }, 382 | { 383 | "name": "doctrine/dbal", 384 | "version": "v2.4.2", 385 | "source": { 386 | "type": "git", 387 | "url": "https://github.com/doctrine/dbal.git", 388 | "reference": "fec965d330c958e175c39e61c3f6751955af32d0" 389 | }, 390 | "dist": { 391 | "type": "zip", 392 | "url": "https://api.github.com/repos/doctrine/dbal/zipball/fec965d330c958e175c39e61c3f6751955af32d0", 393 | "reference": "fec965d330c958e175c39e61c3f6751955af32d0", 394 | "shasum": "" 395 | }, 396 | "require": { 397 | "doctrine/common": "~2.4", 398 | "php": ">=5.3.2" 399 | }, 400 | "require-dev": { 401 | "phpunit/phpunit": "3.7.*", 402 | "symfony/console": "~2.0" 403 | }, 404 | "suggest": { 405 | "symfony/console": "Allows use of the command line interface" 406 | }, 407 | "type": "library", 408 | "autoload": { 409 | "psr-0": { 410 | "Doctrine\\DBAL\\": "lib/" 411 | } 412 | }, 413 | "notification-url": "https://packagist.org/downloads/", 414 | "license": [ 415 | "MIT" 416 | ], 417 | "authors": [ 418 | { 419 | "name": "Jonathan Wage", 420 | "email": "jonwage@gmail.com", 421 | "homepage": "http://www.jwage.com/", 422 | "role": "Creator" 423 | }, 424 | { 425 | "name": "Guilherme Blanco", 426 | "email": "guilhermeblanco@gmail.com", 427 | "homepage": "http://www.instaclick.com" 428 | }, 429 | { 430 | "name": "Roman Borschel", 431 | "email": "roman@code-factory.org" 432 | }, 433 | { 434 | "name": "Benjamin Eberlei", 435 | "email": "kontakt@beberlei.de" 436 | } 437 | ], 438 | "description": "Database Abstraction Layer", 439 | "homepage": "http://www.doctrine-project.org", 440 | "keywords": [ 441 | "database", 442 | "dbal", 443 | "persistence", 444 | "queryobject" 445 | ], 446 | "time": "2014-01-01 16:43:57" 447 | }, 448 | { 449 | "name": "doctrine/inflector", 450 | "version": "v1.0", 451 | "source": { 452 | "type": "git", 453 | "url": "https://github.com/doctrine/inflector.git", 454 | "reference": "54b8333d2a5682afdc690060c1cf384ba9f47f08" 455 | }, 456 | "dist": { 457 | "type": "zip", 458 | "url": "https://api.github.com/repos/doctrine/inflector/zipball/54b8333d2a5682afdc690060c1cf384ba9f47f08", 459 | "reference": "54b8333d2a5682afdc690060c1cf384ba9f47f08", 460 | "shasum": "" 461 | }, 462 | "require": { 463 | "php": ">=5.3.2" 464 | }, 465 | "type": "library", 466 | "autoload": { 467 | "psr-0": { 468 | "Doctrine\\Common\\Inflector\\": "lib/" 469 | } 470 | }, 471 | "notification-url": "https://packagist.org/downloads/", 472 | "license": [ 473 | "MIT" 474 | ], 475 | "authors": [ 476 | { 477 | "name": "Jonathan Wage", 478 | "email": "jonwage@gmail.com", 479 | "homepage": "http://www.jwage.com/", 480 | "role": "Creator" 481 | }, 482 | { 483 | "name": "Guilherme Blanco", 484 | "email": "guilhermeblanco@gmail.com", 485 | "homepage": "http://www.instaclick.com" 486 | }, 487 | { 488 | "name": "Roman Borschel", 489 | "email": "roman@code-factory.org" 490 | }, 491 | { 492 | "name": "Benjamin Eberlei", 493 | "email": "kontakt@beberlei.de" 494 | }, 495 | { 496 | "name": "Johannes Schmitt", 497 | "email": "schmittjoh@gmail.com", 498 | "homepage": "http://jmsyst.com", 499 | "role": "Developer of wrapped JMSSerializerBundle" 500 | } 501 | ], 502 | "description": "Common String Manipulations with regard to casing and singular/plural rules.", 503 | "homepage": "http://www.doctrine-project.org", 504 | "keywords": [ 505 | "inflection", 506 | "pluarlize", 507 | "singuarlize", 508 | "string" 509 | ], 510 | "time": "2013-01-10 21:49:15" 511 | }, 512 | { 513 | "name": "doctrine/lexer", 514 | "version": "v1.0", 515 | "source": { 516 | "type": "git", 517 | "url": "https://github.com/doctrine/lexer.git", 518 | "reference": "2f708a85bb3aab5d99dab8be435abd73e0b18acb" 519 | }, 520 | "dist": { 521 | "type": "zip", 522 | "url": "https://api.github.com/repos/doctrine/lexer/zipball/2f708a85bb3aab5d99dab8be435abd73e0b18acb", 523 | "reference": "2f708a85bb3aab5d99dab8be435abd73e0b18acb", 524 | "shasum": "" 525 | }, 526 | "require": { 527 | "php": ">=5.3.2" 528 | }, 529 | "type": "library", 530 | "autoload": { 531 | "psr-0": { 532 | "Doctrine\\Common\\Lexer\\": "lib/" 533 | } 534 | }, 535 | "notification-url": "https://packagist.org/downloads/", 536 | "license": [ 537 | "MIT" 538 | ], 539 | "authors": [ 540 | { 541 | "name": "Guilherme Blanco", 542 | "email": "guilhermeblanco@gmail.com", 543 | "homepage": "http://www.instaclick.com" 544 | }, 545 | { 546 | "name": "Roman Borschel", 547 | "email": "roman@code-factory.org" 548 | }, 549 | { 550 | "name": "Johannes Schmitt", 551 | "email": "schmittjoh@gmail.com", 552 | "homepage": "http://jmsyst.com", 553 | "role": "Developer of wrapped JMSSerializerBundle" 554 | } 555 | ], 556 | "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.", 557 | "homepage": "http://www.doctrine-project.org", 558 | "keywords": [ 559 | "lexer", 560 | "parser" 561 | ], 562 | "time": "2013-01-12 18:59:04" 563 | }, 564 | { 565 | "name": "doctrine/orm", 566 | "version": "v2.4.3", 567 | "source": { 568 | "type": "git", 569 | "url": "https://github.com/doctrine/doctrine2.git", 570 | "reference": "8a13376d42b5ea467727ffe730aa0e14ca3c5e29" 571 | }, 572 | "dist": { 573 | "type": "zip", 574 | "url": "https://api.github.com/repos/doctrine/doctrine2/zipball/8a13376d42b5ea467727ffe730aa0e14ca3c5e29", 575 | "reference": "8a13376d42b5ea467727ffe730aa0e14ca3c5e29", 576 | "shasum": "" 577 | }, 578 | "require": { 579 | "doctrine/collections": "~1.1", 580 | "doctrine/dbal": "~2.4", 581 | "ext-pdo": "*", 582 | "php": ">=5.3.2", 583 | "symfony/console": "~2.0" 584 | }, 585 | "require-dev": { 586 | "satooshi/php-coveralls": "dev-master", 587 | "symfony/yaml": "~2.1" 588 | }, 589 | "suggest": { 590 | "symfony/yaml": "If you want to use YAML Metadata Mapping Driver" 591 | }, 592 | "bin": [ 593 | "bin/doctrine", 594 | "bin/doctrine.php" 595 | ], 596 | "type": "library", 597 | "extra": { 598 | "branch-alias": { 599 | "dev-master": "2.4.x-dev" 600 | } 601 | }, 602 | "autoload": { 603 | "psr-0": { 604 | "Doctrine\\ORM\\": "lib/" 605 | } 606 | }, 607 | "notification-url": "https://packagist.org/downloads/", 608 | "license": [ 609 | "MIT" 610 | ], 611 | "authors": [ 612 | { 613 | "name": "Jonathan Wage", 614 | "email": "jonwage@gmail.com", 615 | "homepage": "http://www.jwage.com/", 616 | "role": "Creator" 617 | }, 618 | { 619 | "name": "Guilherme Blanco", 620 | "email": "guilhermeblanco@gmail.com", 621 | "homepage": "http://www.instaclick.com" 622 | }, 623 | { 624 | "name": "Roman Borschel", 625 | "email": "roman@code-factory.org" 626 | }, 627 | { 628 | "name": "Benjamin Eberlei", 629 | "email": "kontakt@beberlei.de" 630 | } 631 | ], 632 | "description": "Object-Relational-Mapper for PHP", 633 | "homepage": "http://www.doctrine-project.org", 634 | "keywords": [ 635 | "database", 636 | "orm" 637 | ], 638 | "time": "2014-06-10 11:49:08" 639 | }, 640 | { 641 | "name": "filp/whoops", 642 | "version": "1.1.1", 643 | "source": { 644 | "type": "git", 645 | "url": "https://github.com/filp/whoops.git", 646 | "reference": "ae05259236204ccf904a94e5b0d96df8d4351da5" 647 | }, 648 | "dist": { 649 | "type": "zip", 650 | "url": "https://api.github.com/repos/filp/whoops/zipball/ae05259236204ccf904a94e5b0d96df8d4351da5", 651 | "reference": "ae05259236204ccf904a94e5b0d96df8d4351da5", 652 | "shasum": "" 653 | }, 654 | "require": { 655 | "php": ">=5.3.0" 656 | }, 657 | "require-dev": { 658 | "mockery/mockery": "0.9.*" 659 | }, 660 | "type": "library", 661 | "extra": { 662 | "branch-alias": { 663 | "dev-master": "1.2-dev" 664 | } 665 | }, 666 | "autoload": { 667 | "psr-0": { 668 | "Whoops": "src/" 669 | }, 670 | "classmap": [ 671 | "src/deprecated" 672 | ] 673 | }, 674 | "notification-url": "https://packagist.org/downloads/", 675 | "license": [ 676 | "MIT" 677 | ], 678 | "authors": [ 679 | { 680 | "name": "Filipe Dobreira", 681 | "homepage": "https://github.com/filp", 682 | "role": "Developer" 683 | } 684 | ], 685 | "description": "php error handling for cool kids", 686 | "homepage": "https://github.com/filp/whoops", 687 | "keywords": [ 688 | "error", 689 | "exception", 690 | "handling", 691 | "library", 692 | "silex-provider", 693 | "whoops", 694 | "zf2" 695 | ], 696 | "time": "2014-05-13 05:05:11" 697 | }, 698 | { 699 | "name": "ircmaxell/password-compat", 700 | "version": "1.0.3", 701 | "source": { 702 | "type": "git", 703 | "url": "https://github.com/ircmaxell/password_compat.git", 704 | "reference": "1fc1521b5e9794ea77e4eca30717be9635f1d4f4" 705 | }, 706 | "dist": { 707 | "type": "zip", 708 | "url": "https://api.github.com/repos/ircmaxell/password_compat/zipball/1fc1521b5e9794ea77e4eca30717be9635f1d4f4", 709 | "reference": "1fc1521b5e9794ea77e4eca30717be9635f1d4f4", 710 | "shasum": "" 711 | }, 712 | "type": "library", 713 | "autoload": { 714 | "files": [ 715 | "lib/password.php" 716 | ] 717 | }, 718 | "notification-url": "https://packagist.org/downloads/", 719 | "license": [ 720 | "MIT" 721 | ], 722 | "authors": [ 723 | { 724 | "name": "Anthony Ferrara", 725 | "email": "ircmaxell@php.net", 726 | "homepage": "http://blog.ircmaxell.com" 727 | } 728 | ], 729 | "description": "A compatibility library for the proposed simplified password hashing algorithm: https://wiki.php.net/rfc/password_hash", 730 | "homepage": "https://github.com/ircmaxell/password_compat", 731 | "keywords": [ 732 | "hashing", 733 | "password" 734 | ], 735 | "time": "2013-04-30 19:58:08" 736 | }, 737 | { 738 | "name": "jeremeamia/SuperClosure", 739 | "version": "1.0.1", 740 | "source": { 741 | "type": "git", 742 | "url": "https://github.com/jeremeamia/super_closure.git", 743 | "reference": "d05400085f7d4ae6f20ba30d36550836c0d061e8" 744 | }, 745 | "dist": { 746 | "type": "zip", 747 | "url": "https://api.github.com/repos/jeremeamia/super_closure/zipball/d05400085f7d4ae6f20ba30d36550836c0d061e8", 748 | "reference": "d05400085f7d4ae6f20ba30d36550836c0d061e8", 749 | "shasum": "" 750 | }, 751 | "require": { 752 | "nikic/php-parser": "~0.9", 753 | "php": ">=5.3.3" 754 | }, 755 | "require-dev": { 756 | "phpunit/phpunit": "~3.7" 757 | }, 758 | "type": "library", 759 | "autoload": { 760 | "psr-0": { 761 | "Jeremeamia\\SuperClosure": "src/" 762 | } 763 | }, 764 | "notification-url": "https://packagist.org/downloads/", 765 | "license": [ 766 | "MIT" 767 | ], 768 | "authors": [ 769 | { 770 | "name": "Jeremy Lindblom" 771 | } 772 | ], 773 | "description": "Doing interesting things with closures like serialization.", 774 | "homepage": "https://github.com/jeremeamia/super_closure", 775 | "keywords": [ 776 | "closure", 777 | "function", 778 | "parser", 779 | "serializable", 780 | "serialize", 781 | "tokenizer" 782 | ], 783 | "time": "2013-10-09 04:20:00" 784 | }, 785 | { 786 | "name": "laravel/framework", 787 | "version": "v4.2.4", 788 | "source": { 789 | "type": "git", 790 | "url": "https://github.com/laravel/framework.git", 791 | "reference": "ee370ac91ee0a51303765c870e139b1ecd1e222c" 792 | }, 793 | "dist": { 794 | "type": "zip", 795 | "url": "https://api.github.com/repos/laravel/framework/zipball/ee370ac91ee0a51303765c870e139b1ecd1e222c", 796 | "reference": "ee370ac91ee0a51303765c870e139b1ecd1e222c", 797 | "shasum": "" 798 | }, 799 | "require": { 800 | "classpreloader/classpreloader": "~1.0", 801 | "d11wtq/boris": "~1.0", 802 | "filp/whoops": "1.1.*", 803 | "ircmaxell/password-compat": "~1.0", 804 | "jeremeamia/superclosure": "~1.0", 805 | "monolog/monolog": "~1.6", 806 | "nesbot/carbon": "~1.0", 807 | "patchwork/utf8": "1.1.*", 808 | "php": ">=5.4.0", 809 | "phpseclib/phpseclib": "0.3.*", 810 | "predis/predis": "0.8.*", 811 | "stack/builder": "~1.0", 812 | "swiftmailer/swiftmailer": "~5.1", 813 | "symfony/browser-kit": "2.5.*", 814 | "symfony/console": "2.5.*", 815 | "symfony/css-selector": "2.5.*", 816 | "symfony/debug": "2.5.*", 817 | "symfony/dom-crawler": "2.5.*", 818 | "symfony/finder": "2.5.*", 819 | "symfony/http-foundation": "2.5.*", 820 | "symfony/http-kernel": "2.5.*", 821 | "symfony/process": "2.5.*", 822 | "symfony/routing": "2.5.*", 823 | "symfony/security-core": "2.5.*", 824 | "symfony/translation": "2.5.*" 825 | }, 826 | "replace": { 827 | "illuminate/auth": "self.version", 828 | "illuminate/cache": "self.version", 829 | "illuminate/config": "self.version", 830 | "illuminate/console": "self.version", 831 | "illuminate/container": "self.version", 832 | "illuminate/cookie": "self.version", 833 | "illuminate/database": "self.version", 834 | "illuminate/encryption": "self.version", 835 | "illuminate/events": "self.version", 836 | "illuminate/exception": "self.version", 837 | "illuminate/filesystem": "self.version", 838 | "illuminate/foundation": "self.version", 839 | "illuminate/hashing": "self.version", 840 | "illuminate/html": "self.version", 841 | "illuminate/http": "self.version", 842 | "illuminate/log": "self.version", 843 | "illuminate/mail": "self.version", 844 | "illuminate/pagination": "self.version", 845 | "illuminate/queue": "self.version", 846 | "illuminate/redis": "self.version", 847 | "illuminate/remote": "self.version", 848 | "illuminate/routing": "self.version", 849 | "illuminate/session": "self.version", 850 | "illuminate/support": "self.version", 851 | "illuminate/translation": "self.version", 852 | "illuminate/validation": "self.version", 853 | "illuminate/view": "self.version", 854 | "illuminate/workbench": "self.version" 855 | }, 856 | "require-dev": { 857 | "aws/aws-sdk-php": "~2.6", 858 | "iron-io/iron_mq": "~1.5", 859 | "mockery/mockery": "~0.9", 860 | "pda/pheanstalk": "~2.1", 861 | "phpunit/phpunit": "~4.0" 862 | }, 863 | "suggest": { 864 | "doctrine/dbal": "Allow renaming columns and dropping SQLite columns." 865 | }, 866 | "type": "library", 867 | "extra": { 868 | "branch-alias": { 869 | "dev-master": "4.2-dev" 870 | } 871 | }, 872 | "autoload": { 873 | "classmap": [ 874 | "src/Illuminate/Queue/IlluminateQueueClosure.php" 875 | ], 876 | "files": [ 877 | "src/Illuminate/Support/helpers.php" 878 | ], 879 | "psr-0": { 880 | "Illuminate": "src/" 881 | } 882 | }, 883 | "notification-url": "https://packagist.org/downloads/", 884 | "license": [ 885 | "MIT" 886 | ], 887 | "authors": [ 888 | { 889 | "name": "Taylor Otwell", 890 | "email": "taylorotwell@gmail.com", 891 | "homepage": "https://github.com/taylorotwell", 892 | "role": "Creator of Laravel" 893 | } 894 | ], 895 | "description": "The Laravel Framework.", 896 | "keywords": [ 897 | "framework", 898 | "laravel" 899 | ], 900 | "time": "2014-06-18 05:07:22" 901 | }, 902 | { 903 | "name": "monolog/monolog", 904 | "version": "1.10.0", 905 | "source": { 906 | "type": "git", 907 | "url": "https://github.com/Seldaek/monolog.git", 908 | "reference": "25b16e801979098cb2f120e697bfce454b18bf23" 909 | }, 910 | "dist": { 911 | "type": "zip", 912 | "url": "https://api.github.com/repos/Seldaek/monolog/zipball/25b16e801979098cb2f120e697bfce454b18bf23", 913 | "reference": "25b16e801979098cb2f120e697bfce454b18bf23", 914 | "shasum": "" 915 | }, 916 | "require": { 917 | "php": ">=5.3.0", 918 | "psr/log": "~1.0" 919 | }, 920 | "require-dev": { 921 | "aws/aws-sdk-php": "~2.4, >2.4.8", 922 | "doctrine/couchdb": "~1.0@dev", 923 | "graylog2/gelf-php": "~1.0", 924 | "phpunit/phpunit": "~3.7.0", 925 | "raven/raven": "~0.5", 926 | "ruflin/elastica": "0.90.*" 927 | }, 928 | "suggest": { 929 | "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", 930 | "doctrine/couchdb": "Allow sending log messages to a CouchDB server", 931 | "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", 932 | "ext-mongo": "Allow sending log messages to a MongoDB server", 933 | "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", 934 | "raven/raven": "Allow sending log messages to a Sentry server", 935 | "rollbar/rollbar": "Allow sending log messages to Rollbar", 936 | "ruflin/elastica": "Allow sending log messages to an Elastic Search server" 937 | }, 938 | "type": "library", 939 | "extra": { 940 | "branch-alias": { 941 | "dev-master": "1.10.x-dev" 942 | } 943 | }, 944 | "autoload": { 945 | "psr-4": { 946 | "Monolog\\": "src/Monolog" 947 | } 948 | }, 949 | "notification-url": "https://packagist.org/downloads/", 950 | "license": [ 951 | "MIT" 952 | ], 953 | "authors": [ 954 | { 955 | "name": "Jordi Boggiano", 956 | "email": "j.boggiano@seld.be", 957 | "homepage": "http://seld.be", 958 | "role": "Developer" 959 | } 960 | ], 961 | "description": "Sends your logs to files, sockets, inboxes, databases and various web services", 962 | "homepage": "http://github.com/Seldaek/monolog", 963 | "keywords": [ 964 | "log", 965 | "logging", 966 | "psr-3" 967 | ], 968 | "time": "2014-06-04 16:30:04" 969 | }, 970 | { 971 | "name": "nesbot/carbon", 972 | "version": "1.9.0", 973 | "source": { 974 | "type": "git", 975 | "url": "https://github.com/briannesbitt/Carbon.git", 976 | "reference": "b94de7192b01d0e80794eae984dcc773220ab0dc" 977 | }, 978 | "dist": { 979 | "type": "zip", 980 | "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/b94de7192b01d0e80794eae984dcc773220ab0dc", 981 | "reference": "b94de7192b01d0e80794eae984dcc773220ab0dc", 982 | "shasum": "" 983 | }, 984 | "require": { 985 | "php": ">=5.3.0" 986 | }, 987 | "require-dev": { 988 | "phpunit/phpunit": "3.7.*" 989 | }, 990 | "type": "library", 991 | "autoload": { 992 | "psr-0": { 993 | "Carbon": "src" 994 | } 995 | }, 996 | "notification-url": "https://packagist.org/downloads/", 997 | "license": [ 998 | "MIT" 999 | ], 1000 | "authors": [ 1001 | { 1002 | "name": "Brian Nesbitt", 1003 | "email": "brian@nesbot.com", 1004 | "homepage": "http://nesbot.com" 1005 | } 1006 | ], 1007 | "description": "A simple API extension for DateTime.", 1008 | "homepage": "https://github.com/briannesbitt/Carbon", 1009 | "keywords": [ 1010 | "date", 1011 | "datetime", 1012 | "time" 1013 | ], 1014 | "time": "2014-05-13 02:29:30" 1015 | }, 1016 | { 1017 | "name": "nikic/php-parser", 1018 | "version": "v0.9.4", 1019 | "source": { 1020 | "type": "git", 1021 | "url": "https://github.com/nikic/PHP-Parser.git", 1022 | "reference": "1e5e280ae88a27effa2ae4aa2bd088494ed8594f" 1023 | }, 1024 | "dist": { 1025 | "type": "zip", 1026 | "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/1e5e280ae88a27effa2ae4aa2bd088494ed8594f", 1027 | "reference": "1e5e280ae88a27effa2ae4aa2bd088494ed8594f", 1028 | "shasum": "" 1029 | }, 1030 | "require": { 1031 | "php": ">=5.2" 1032 | }, 1033 | "type": "library", 1034 | "extra": { 1035 | "branch-alias": { 1036 | "dev-master": "0.9-dev" 1037 | } 1038 | }, 1039 | "autoload": { 1040 | "psr-0": { 1041 | "PHPParser": "lib/" 1042 | } 1043 | }, 1044 | "notification-url": "https://packagist.org/downloads/", 1045 | "license": [ 1046 | "BSD-3-Clause" 1047 | ], 1048 | "authors": [ 1049 | { 1050 | "name": "Nikita Popov" 1051 | } 1052 | ], 1053 | "description": "A PHP parser written in PHP", 1054 | "keywords": [ 1055 | "parser", 1056 | "php" 1057 | ], 1058 | "time": "2013-08-25 17:11:40" 1059 | }, 1060 | { 1061 | "name": "patchwork/utf8", 1062 | "version": "v1.1.24", 1063 | "source": { 1064 | "type": "git", 1065 | "url": "https://github.com/nicolas-grekas/Patchwork-UTF8.git", 1066 | "reference": "40f552c019956f446553b19f7de2da2f9c74d730" 1067 | }, 1068 | "dist": { 1069 | "type": "zip", 1070 | "url": "https://api.github.com/repos/nicolas-grekas/Patchwork-UTF8/zipball/40f552c019956f446553b19f7de2da2f9c74d730", 1071 | "reference": "40f552c019956f446553b19f7de2da2f9c74d730", 1072 | "shasum": "" 1073 | }, 1074 | "require": { 1075 | "lib-pcre": ">=7.3", 1076 | "php": ">=5.3.0" 1077 | }, 1078 | "suggest": { 1079 | "ext-iconv": "Use iconv for best performance", 1080 | "ext-intl": "Use Intl for best performance", 1081 | "ext-mbstring": "Use Mbstring for best performance" 1082 | }, 1083 | "type": "library", 1084 | "autoload": { 1085 | "psr-0": { 1086 | "Patchwork": "class/", 1087 | "Normalizer": "class/" 1088 | } 1089 | }, 1090 | "notification-url": "https://packagist.org/downloads/", 1091 | "license": [ 1092 | "(Apache-2.0 or GPL-2.0)" 1093 | ], 1094 | "authors": [ 1095 | { 1096 | "name": "Nicolas Grekas", 1097 | "email": "p@tchwork.com", 1098 | "role": "Developer" 1099 | } 1100 | ], 1101 | "description": "Extensive, portable and performant handling of UTF-8 and grapheme clusters for PHP", 1102 | "homepage": "https://github.com/nicolas-grekas/Patchwork-UTF8", 1103 | "keywords": [ 1104 | "i18n", 1105 | "unicode", 1106 | "utf-8", 1107 | "utf8" 1108 | ], 1109 | "time": "2014-06-17 08:23:06" 1110 | }, 1111 | { 1112 | "name": "phpseclib/phpseclib", 1113 | "version": "0.3.6", 1114 | "source": { 1115 | "type": "git", 1116 | "url": "https://github.com/phpseclib/phpseclib.git", 1117 | "reference": "0ea31d9b65d49a8661e93bec19f44e989bd34c69" 1118 | }, 1119 | "dist": { 1120 | "type": "zip", 1121 | "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/0ea31d9b65d49a8661e93bec19f44e989bd34c69", 1122 | "reference": "0ea31d9b65d49a8661e93bec19f44e989bd34c69", 1123 | "shasum": "" 1124 | }, 1125 | "require": { 1126 | "php": ">=5.0.0" 1127 | }, 1128 | "require-dev": { 1129 | "squizlabs/php_codesniffer": "1.*" 1130 | }, 1131 | "suggest": { 1132 | "ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.", 1133 | "ext-mcrypt": "Install the Mcrypt extension in order to speed up a wide variety of cryptographic operations.", 1134 | "pear-pear/PHP_Compat": "Install PHP_Compat to get phpseclib working on PHP < 4.3.3." 1135 | }, 1136 | "type": "library", 1137 | "extra": { 1138 | "branch-alias": { 1139 | "dev-master": "0.3-dev" 1140 | } 1141 | }, 1142 | "autoload": { 1143 | "psr-0": { 1144 | "Crypt": "phpseclib/", 1145 | "File": "phpseclib/", 1146 | "Math": "phpseclib/", 1147 | "Net": "phpseclib/", 1148 | "System": "phpseclib/" 1149 | }, 1150 | "files": [ 1151 | "phpseclib/Crypt/Random.php" 1152 | ] 1153 | }, 1154 | "notification-url": "https://packagist.org/downloads/", 1155 | "include-path": [ 1156 | "phpseclib/" 1157 | ], 1158 | "license": [ 1159 | "MIT" 1160 | ], 1161 | "authors": [ 1162 | { 1163 | "name": "Jim Wigginton", 1164 | "email": "terrafrost@php.net", 1165 | "role": "Lead Developer" 1166 | }, 1167 | { 1168 | "name": "Patrick Monnerat", 1169 | "email": "pm@datasphere.ch", 1170 | "role": "Developer" 1171 | }, 1172 | { 1173 | "name": "Andreas Fischer", 1174 | "email": "bantu@phpbb.com", 1175 | "role": "Developer" 1176 | }, 1177 | { 1178 | "name": "Hans-Jürgen Petrich", 1179 | "email": "petrich@tronic-media.com", 1180 | "role": "Developer" 1181 | } 1182 | ], 1183 | "description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.", 1184 | "homepage": "http://phpseclib.sourceforge.net", 1185 | "keywords": [ 1186 | "BigInteger", 1187 | "aes", 1188 | "asn.1", 1189 | "asn1", 1190 | "blowfish", 1191 | "crypto", 1192 | "cryptography", 1193 | "encryption", 1194 | "rsa", 1195 | "security", 1196 | "sftp", 1197 | "signature", 1198 | "signing", 1199 | "ssh", 1200 | "twofish", 1201 | "x.509", 1202 | "x509" 1203 | ], 1204 | "time": "2014-02-28 16:05:05" 1205 | }, 1206 | { 1207 | "name": "predis/predis", 1208 | "version": "v0.8.5", 1209 | "source": { 1210 | "type": "git", 1211 | "url": "https://github.com/nrk/predis.git", 1212 | "reference": "5f2eea628eb465d866ad2771927d83769c8f956c" 1213 | }, 1214 | "dist": { 1215 | "type": "zip", 1216 | "url": "https://api.github.com/repos/nrk/predis/zipball/5f2eea628eb465d866ad2771927d83769c8f956c", 1217 | "reference": "5f2eea628eb465d866ad2771927d83769c8f956c", 1218 | "shasum": "" 1219 | }, 1220 | "require": { 1221 | "php": ">=5.3.2" 1222 | }, 1223 | "suggest": { 1224 | "ext-curl": "Allows access to Webdis when paired with phpiredis", 1225 | "ext-phpiredis": "Allows faster serialization and deserialization of the Redis protocol" 1226 | }, 1227 | "type": "library", 1228 | "autoload": { 1229 | "psr-0": { 1230 | "Predis": "lib/" 1231 | } 1232 | }, 1233 | "notification-url": "https://packagist.org/downloads/", 1234 | "license": [ 1235 | "MIT" 1236 | ], 1237 | "authors": [ 1238 | { 1239 | "name": "Daniele Alessandri", 1240 | "email": "suppakilla@gmail.com", 1241 | "homepage": "http://clorophilla.net" 1242 | } 1243 | ], 1244 | "description": "Flexible and feature-complete PHP client library for Redis", 1245 | "homepage": "http://github.com/nrk/predis", 1246 | "keywords": [ 1247 | "nosql", 1248 | "predis", 1249 | "redis" 1250 | ], 1251 | "time": "2014-01-16 14:10:29" 1252 | }, 1253 | { 1254 | "name": "psr/log", 1255 | "version": "1.0.0", 1256 | "source": { 1257 | "type": "git", 1258 | "url": "https://github.com/php-fig/log.git", 1259 | "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b" 1260 | }, 1261 | "dist": { 1262 | "type": "zip", 1263 | "url": "https://api.github.com/repos/php-fig/log/zipball/fe0936ee26643249e916849d48e3a51d5f5e278b", 1264 | "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b", 1265 | "shasum": "" 1266 | }, 1267 | "type": "library", 1268 | "autoload": { 1269 | "psr-0": { 1270 | "Psr\\Log\\": "" 1271 | } 1272 | }, 1273 | "notification-url": "https://packagist.org/downloads/", 1274 | "license": [ 1275 | "MIT" 1276 | ], 1277 | "authors": [ 1278 | { 1279 | "name": "PHP-FIG", 1280 | "homepage": "http://www.php-fig.org/" 1281 | } 1282 | ], 1283 | "description": "Common interface for logging libraries", 1284 | "keywords": [ 1285 | "log", 1286 | "psr", 1287 | "psr-3" 1288 | ], 1289 | "time": "2012-12-21 11:40:51" 1290 | }, 1291 | { 1292 | "name": "stack/builder", 1293 | "version": "v1.0.2", 1294 | "source": { 1295 | "type": "git", 1296 | "url": "https://github.com/stackphp/builder.git", 1297 | "reference": "b4af43e7b7f3f7fac919ff475b29f7c5dc7b23b7" 1298 | }, 1299 | "dist": { 1300 | "type": "zip", 1301 | "url": "https://api.github.com/repos/stackphp/builder/zipball/b4af43e7b7f3f7fac919ff475b29f7c5dc7b23b7", 1302 | "reference": "b4af43e7b7f3f7fac919ff475b29f7c5dc7b23b7", 1303 | "shasum": "" 1304 | }, 1305 | "require": { 1306 | "php": ">=5.3.0", 1307 | "symfony/http-foundation": "~2.1", 1308 | "symfony/http-kernel": "~2.1" 1309 | }, 1310 | "require-dev": { 1311 | "silex/silex": "~1.0" 1312 | }, 1313 | "type": "library", 1314 | "extra": { 1315 | "branch-alias": { 1316 | "dev-master": "1.0-dev" 1317 | } 1318 | }, 1319 | "autoload": { 1320 | "psr-0": { 1321 | "Stack": "src" 1322 | } 1323 | }, 1324 | "notification-url": "https://packagist.org/downloads/", 1325 | "license": [ 1326 | "MIT" 1327 | ], 1328 | "authors": [ 1329 | { 1330 | "name": "Igor Wiedler", 1331 | "email": "igor@wiedler.ch", 1332 | "homepage": "http://wiedler.ch/igor/" 1333 | } 1334 | ], 1335 | "description": "Builder for stack middlewares based on HttpKernelInterface.", 1336 | "keywords": [ 1337 | "stack" 1338 | ], 1339 | "time": "2014-01-28 19:42:24" 1340 | }, 1341 | { 1342 | "name": "swiftmailer/swiftmailer", 1343 | "version": "v5.2.1", 1344 | "source": { 1345 | "type": "git", 1346 | "url": "https://github.com/swiftmailer/swiftmailer.git", 1347 | "reference": "2b9af56cc676c338d52fca4c657e5bdff73bb7af" 1348 | }, 1349 | "dist": { 1350 | "type": "zip", 1351 | "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/2b9af56cc676c338d52fca4c657e5bdff73bb7af", 1352 | "reference": "2b9af56cc676c338d52fca4c657e5bdff73bb7af", 1353 | "shasum": "" 1354 | }, 1355 | "require": { 1356 | "php": ">=5.2.4" 1357 | }, 1358 | "require-dev": { 1359 | "mockery/mockery": "~0.9.1" 1360 | }, 1361 | "type": "library", 1362 | "extra": { 1363 | "branch-alias": { 1364 | "dev-master": "5.2-dev" 1365 | } 1366 | }, 1367 | "autoload": { 1368 | "files": [ 1369 | "lib/swift_required.php" 1370 | ] 1371 | }, 1372 | "notification-url": "https://packagist.org/downloads/", 1373 | "license": [ 1374 | "MIT" 1375 | ], 1376 | "authors": [ 1377 | { 1378 | "name": "Fabien Potencier", 1379 | "email": "fabien@symfony.com", 1380 | "homepage": "http://fabien.potencier.org", 1381 | "role": "Lead Developer" 1382 | }, 1383 | { 1384 | "name": "Chris Corbyn" 1385 | } 1386 | ], 1387 | "description": "Swiftmailer, free feature-rich PHP mailer", 1388 | "homepage": "http://swiftmailer.org", 1389 | "keywords": [ 1390 | "mail", 1391 | "mailer" 1392 | ], 1393 | "time": "2014-06-13 11:44:54" 1394 | }, 1395 | { 1396 | "name": "symfony/browser-kit", 1397 | "version": "v2.5.0", 1398 | "target-dir": "Symfony/Component/BrowserKit", 1399 | "source": { 1400 | "type": "git", 1401 | "url": "https://github.com/symfony/BrowserKit.git", 1402 | "reference": "cc1716dafa04277a0c987aee5bce8c3cf8939de3" 1403 | }, 1404 | "dist": { 1405 | "type": "zip", 1406 | "url": "https://api.github.com/repos/symfony/BrowserKit/zipball/cc1716dafa04277a0c987aee5bce8c3cf8939de3", 1407 | "reference": "cc1716dafa04277a0c987aee5bce8c3cf8939de3", 1408 | "shasum": "" 1409 | }, 1410 | "require": { 1411 | "php": ">=5.3.3", 1412 | "symfony/dom-crawler": "~2.0" 1413 | }, 1414 | "require-dev": { 1415 | "symfony/css-selector": "~2.0", 1416 | "symfony/process": "~2.0" 1417 | }, 1418 | "suggest": { 1419 | "symfony/process": "" 1420 | }, 1421 | "type": "library", 1422 | "extra": { 1423 | "branch-alias": { 1424 | "dev-master": "2.5-dev" 1425 | } 1426 | }, 1427 | "autoload": { 1428 | "psr-0": { 1429 | "Symfony\\Component\\BrowserKit\\": "" 1430 | } 1431 | }, 1432 | "notification-url": "https://packagist.org/downloads/", 1433 | "license": [ 1434 | "MIT" 1435 | ], 1436 | "authors": [ 1437 | { 1438 | "name": "Fabien Potencier", 1439 | "email": "fabien@symfony.com", 1440 | "homepage": "http://fabien.potencier.org", 1441 | "role": "Lead Developer" 1442 | }, 1443 | { 1444 | "name": "Symfony Community", 1445 | "homepage": "http://symfony.com/contributors" 1446 | } 1447 | ], 1448 | "description": "Symfony BrowserKit Component", 1449 | "homepage": "http://symfony.com", 1450 | "time": "2014-05-12 09:28:39" 1451 | }, 1452 | { 1453 | "name": "symfony/console", 1454 | "version": "v2.5.0", 1455 | "target-dir": "Symfony/Component/Console", 1456 | "source": { 1457 | "type": "git", 1458 | "url": "https://github.com/symfony/Console.git", 1459 | "reference": "ef4ca73b0b3a10cbac653d3ca482d0cdd4502b2c" 1460 | }, 1461 | "dist": { 1462 | "type": "zip", 1463 | "url": "https://api.github.com/repos/symfony/Console/zipball/ef4ca73b0b3a10cbac653d3ca482d0cdd4502b2c", 1464 | "reference": "ef4ca73b0b3a10cbac653d3ca482d0cdd4502b2c", 1465 | "shasum": "" 1466 | }, 1467 | "require": { 1468 | "php": ">=5.3.3" 1469 | }, 1470 | "require-dev": { 1471 | "psr/log": "~1.0", 1472 | "symfony/event-dispatcher": "~2.1" 1473 | }, 1474 | "suggest": { 1475 | "psr/log": "For using the console logger", 1476 | "symfony/event-dispatcher": "" 1477 | }, 1478 | "type": "library", 1479 | "extra": { 1480 | "branch-alias": { 1481 | "dev-master": "2.5-dev" 1482 | } 1483 | }, 1484 | "autoload": { 1485 | "psr-0": { 1486 | "Symfony\\Component\\Console\\": "" 1487 | } 1488 | }, 1489 | "notification-url": "https://packagist.org/downloads/", 1490 | "license": [ 1491 | "MIT" 1492 | ], 1493 | "authors": [ 1494 | { 1495 | "name": "Fabien Potencier", 1496 | "email": "fabien@symfony.com", 1497 | "homepage": "http://fabien.potencier.org", 1498 | "role": "Lead Developer" 1499 | }, 1500 | { 1501 | "name": "Symfony Community", 1502 | "homepage": "http://symfony.com/contributors" 1503 | } 1504 | ], 1505 | "description": "Symfony Console Component", 1506 | "homepage": "http://symfony.com", 1507 | "time": "2014-05-22 08:54:24" 1508 | }, 1509 | { 1510 | "name": "symfony/css-selector", 1511 | "version": "v2.5.0", 1512 | "target-dir": "Symfony/Component/CssSelector", 1513 | "source": { 1514 | "type": "git", 1515 | "url": "https://github.com/symfony/CssSelector.git", 1516 | "reference": "bcdd62af59bd3137ede467946a06d41f8644048c" 1517 | }, 1518 | "dist": { 1519 | "type": "zip", 1520 | "url": "https://api.github.com/repos/symfony/CssSelector/zipball/bcdd62af59bd3137ede467946a06d41f8644048c", 1521 | "reference": "bcdd62af59bd3137ede467946a06d41f8644048c", 1522 | "shasum": "" 1523 | }, 1524 | "require": { 1525 | "php": ">=5.3.3" 1526 | }, 1527 | "type": "library", 1528 | "extra": { 1529 | "branch-alias": { 1530 | "dev-master": "2.5-dev" 1531 | } 1532 | }, 1533 | "autoload": { 1534 | "psr-0": { 1535 | "Symfony\\Component\\CssSelector\\": "" 1536 | } 1537 | }, 1538 | "notification-url": "https://packagist.org/downloads/", 1539 | "license": [ 1540 | "MIT" 1541 | ], 1542 | "authors": [ 1543 | { 1544 | "name": "Fabien Potencier", 1545 | "email": "fabien@symfony.com", 1546 | "homepage": "http://fabien.potencier.org", 1547 | "role": "Lead Developer" 1548 | }, 1549 | { 1550 | "name": "Symfony Community", 1551 | "homepage": "http://symfony.com/contributors" 1552 | }, 1553 | { 1554 | "name": "Jean-François Simon", 1555 | "email": "jeanfrancois.simon@sensiolabs.com" 1556 | } 1557 | ], 1558 | "description": "Symfony CssSelector Component", 1559 | "homepage": "http://symfony.com", 1560 | "time": "2014-05-12 09:28:39" 1561 | }, 1562 | { 1563 | "name": "symfony/debug", 1564 | "version": "v2.5.0", 1565 | "target-dir": "Symfony/Component/Debug", 1566 | "source": { 1567 | "type": "git", 1568 | "url": "https://github.com/symfony/Debug.git", 1569 | "reference": "7fd8006e4604ef99c95050ca2b5c7c5b41f5c704" 1570 | }, 1571 | "dist": { 1572 | "type": "zip", 1573 | "url": "https://api.github.com/repos/symfony/Debug/zipball/7fd8006e4604ef99c95050ca2b5c7c5b41f5c704", 1574 | "reference": "7fd8006e4604ef99c95050ca2b5c7c5b41f5c704", 1575 | "shasum": "" 1576 | }, 1577 | "require": { 1578 | "php": ">=5.3.3" 1579 | }, 1580 | "require-dev": { 1581 | "symfony/http-foundation": "~2.1", 1582 | "symfony/http-kernel": "~2.1" 1583 | }, 1584 | "suggest": { 1585 | "symfony/http-foundation": "", 1586 | "symfony/http-kernel": "" 1587 | }, 1588 | "type": "library", 1589 | "extra": { 1590 | "branch-alias": { 1591 | "dev-master": "2.5-dev" 1592 | } 1593 | }, 1594 | "autoload": { 1595 | "psr-0": { 1596 | "Symfony\\Component\\Debug\\": "" 1597 | } 1598 | }, 1599 | "notification-url": "https://packagist.org/downloads/", 1600 | "license": [ 1601 | "MIT" 1602 | ], 1603 | "authors": [ 1604 | { 1605 | "name": "Fabien Potencier", 1606 | "email": "fabien@symfony.com", 1607 | "homepage": "http://fabien.potencier.org", 1608 | "role": "Lead Developer" 1609 | }, 1610 | { 1611 | "name": "Symfony Community", 1612 | "homepage": "http://symfony.com/contributors" 1613 | } 1614 | ], 1615 | "description": "Symfony Debug Component", 1616 | "homepage": "http://symfony.com", 1617 | "time": "2014-05-25 14:44:21" 1618 | }, 1619 | { 1620 | "name": "symfony/dom-crawler", 1621 | "version": "v2.5.0", 1622 | "target-dir": "Symfony/Component/DomCrawler", 1623 | "source": { 1624 | "type": "git", 1625 | "url": "https://github.com/symfony/DomCrawler.git", 1626 | "reference": "6cda499120860286fe3d3d2fd631dacb7ae17f92" 1627 | }, 1628 | "dist": { 1629 | "type": "zip", 1630 | "url": "https://api.github.com/repos/symfony/DomCrawler/zipball/6cda499120860286fe3d3d2fd631dacb7ae17f92", 1631 | "reference": "6cda499120860286fe3d3d2fd631dacb7ae17f92", 1632 | "shasum": "" 1633 | }, 1634 | "require": { 1635 | "php": ">=5.3.3" 1636 | }, 1637 | "require-dev": { 1638 | "symfony/css-selector": "~2.0" 1639 | }, 1640 | "suggest": { 1641 | "symfony/css-selector": "" 1642 | }, 1643 | "type": "library", 1644 | "extra": { 1645 | "branch-alias": { 1646 | "dev-master": "2.5-dev" 1647 | } 1648 | }, 1649 | "autoload": { 1650 | "psr-0": { 1651 | "Symfony\\Component\\DomCrawler\\": "" 1652 | } 1653 | }, 1654 | "notification-url": "https://packagist.org/downloads/", 1655 | "license": [ 1656 | "MIT" 1657 | ], 1658 | "authors": [ 1659 | { 1660 | "name": "Fabien Potencier", 1661 | "email": "fabien@symfony.com", 1662 | "homepage": "http://fabien.potencier.org", 1663 | "role": "Lead Developer" 1664 | }, 1665 | { 1666 | "name": "Symfony Community", 1667 | "homepage": "http://symfony.com/contributors" 1668 | } 1669 | ], 1670 | "description": "Symfony DomCrawler Component", 1671 | "homepage": "http://symfony.com", 1672 | "time": "2014-05-31 02:02:56" 1673 | }, 1674 | { 1675 | "name": "symfony/event-dispatcher", 1676 | "version": "v2.5.0", 1677 | "target-dir": "Symfony/Component/EventDispatcher", 1678 | "source": { 1679 | "type": "git", 1680 | "url": "https://github.com/symfony/EventDispatcher.git", 1681 | "reference": "cb62ec8dd05893fc8e4f0e6e21e326e1fc731fe8" 1682 | }, 1683 | "dist": { 1684 | "type": "zip", 1685 | "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/cb62ec8dd05893fc8e4f0e6e21e326e1fc731fe8", 1686 | "reference": "cb62ec8dd05893fc8e4f0e6e21e326e1fc731fe8", 1687 | "shasum": "" 1688 | }, 1689 | "require": { 1690 | "php": ">=5.3.3" 1691 | }, 1692 | "require-dev": { 1693 | "psr/log": "~1.0", 1694 | "symfony/config": "~2.0", 1695 | "symfony/dependency-injection": "~2.0", 1696 | "symfony/stopwatch": "~2.2" 1697 | }, 1698 | "suggest": { 1699 | "symfony/dependency-injection": "", 1700 | "symfony/http-kernel": "" 1701 | }, 1702 | "type": "library", 1703 | "extra": { 1704 | "branch-alias": { 1705 | "dev-master": "2.5-dev" 1706 | } 1707 | }, 1708 | "autoload": { 1709 | "psr-0": { 1710 | "Symfony\\Component\\EventDispatcher\\": "" 1711 | } 1712 | }, 1713 | "notification-url": "https://packagist.org/downloads/", 1714 | "license": [ 1715 | "MIT" 1716 | ], 1717 | "authors": [ 1718 | { 1719 | "name": "Fabien Potencier", 1720 | "email": "fabien@symfony.com", 1721 | "homepage": "http://fabien.potencier.org", 1722 | "role": "Lead Developer" 1723 | }, 1724 | { 1725 | "name": "Symfony Community", 1726 | "homepage": "http://symfony.com/contributors" 1727 | } 1728 | ], 1729 | "description": "Symfony EventDispatcher Component", 1730 | "homepage": "http://symfony.com", 1731 | "time": "2014-04-29 10:13:57" 1732 | }, 1733 | { 1734 | "name": "symfony/filesystem", 1735 | "version": "v2.5.0", 1736 | "target-dir": "Symfony/Component/Filesystem", 1737 | "source": { 1738 | "type": "git", 1739 | "url": "https://github.com/symfony/Filesystem.git", 1740 | "reference": "98e831eac836a0a5911626ce82684155f21d0e4d" 1741 | }, 1742 | "dist": { 1743 | "type": "zip", 1744 | "url": "https://api.github.com/repos/symfony/Filesystem/zipball/98e831eac836a0a5911626ce82684155f21d0e4d", 1745 | "reference": "98e831eac836a0a5911626ce82684155f21d0e4d", 1746 | "shasum": "" 1747 | }, 1748 | "require": { 1749 | "php": ">=5.3.3" 1750 | }, 1751 | "type": "library", 1752 | "extra": { 1753 | "branch-alias": { 1754 | "dev-master": "2.5-dev" 1755 | } 1756 | }, 1757 | "autoload": { 1758 | "psr-0": { 1759 | "Symfony\\Component\\Filesystem\\": "" 1760 | } 1761 | }, 1762 | "notification-url": "https://packagist.org/downloads/", 1763 | "license": [ 1764 | "MIT" 1765 | ], 1766 | "authors": [ 1767 | { 1768 | "name": "Fabien Potencier", 1769 | "email": "fabien@symfony.com", 1770 | "homepage": "http://fabien.potencier.org", 1771 | "role": "Lead Developer" 1772 | }, 1773 | { 1774 | "name": "Symfony Community", 1775 | "homepage": "http://symfony.com/contributors" 1776 | } 1777 | ], 1778 | "description": "Symfony Filesystem Component", 1779 | "homepage": "http://symfony.com", 1780 | "time": "2014-04-16 10:36:21" 1781 | }, 1782 | { 1783 | "name": "symfony/finder", 1784 | "version": "v2.5.0", 1785 | "target-dir": "Symfony/Component/Finder", 1786 | "source": { 1787 | "type": "git", 1788 | "url": "https://github.com/symfony/Finder.git", 1789 | "reference": "307aad2c541bbdf43183043645e186ef2cd6b973" 1790 | }, 1791 | "dist": { 1792 | "type": "zip", 1793 | "url": "https://api.github.com/repos/symfony/Finder/zipball/307aad2c541bbdf43183043645e186ef2cd6b973", 1794 | "reference": "307aad2c541bbdf43183043645e186ef2cd6b973", 1795 | "shasum": "" 1796 | }, 1797 | "require": { 1798 | "php": ">=5.3.3" 1799 | }, 1800 | "type": "library", 1801 | "extra": { 1802 | "branch-alias": { 1803 | "dev-master": "2.5-dev" 1804 | } 1805 | }, 1806 | "autoload": { 1807 | "psr-0": { 1808 | "Symfony\\Component\\Finder\\": "" 1809 | } 1810 | }, 1811 | "notification-url": "https://packagist.org/downloads/", 1812 | "license": [ 1813 | "MIT" 1814 | ], 1815 | "authors": [ 1816 | { 1817 | "name": "Fabien Potencier", 1818 | "email": "fabien@symfony.com", 1819 | "homepage": "http://fabien.potencier.org", 1820 | "role": "Lead Developer" 1821 | }, 1822 | { 1823 | "name": "Symfony Community", 1824 | "homepage": "http://symfony.com/contributors" 1825 | } 1826 | ], 1827 | "description": "Symfony Finder Component", 1828 | "homepage": "http://symfony.com", 1829 | "time": "2014-05-22 13:47:45" 1830 | }, 1831 | { 1832 | "name": "symfony/http-foundation", 1833 | "version": "v2.5.0", 1834 | "target-dir": "Symfony/Component/HttpFoundation", 1835 | "source": { 1836 | "type": "git", 1837 | "url": "https://github.com/symfony/HttpFoundation.git", 1838 | "reference": "044085422005aa3258fb3f710a7bf0202011f259" 1839 | }, 1840 | "dist": { 1841 | "type": "zip", 1842 | "url": "https://api.github.com/repos/symfony/HttpFoundation/zipball/044085422005aa3258fb3f710a7bf0202011f259", 1843 | "reference": "044085422005aa3258fb3f710a7bf0202011f259", 1844 | "shasum": "" 1845 | }, 1846 | "require": { 1847 | "php": ">=5.3.3" 1848 | }, 1849 | "require-dev": { 1850 | "symfony/expression-language": "~2.4" 1851 | }, 1852 | "type": "library", 1853 | "extra": { 1854 | "branch-alias": { 1855 | "dev-master": "2.5-dev" 1856 | } 1857 | }, 1858 | "autoload": { 1859 | "psr-0": { 1860 | "Symfony\\Component\\HttpFoundation\\": "" 1861 | }, 1862 | "classmap": [ 1863 | "Symfony/Component/HttpFoundation/Resources/stubs" 1864 | ] 1865 | }, 1866 | "notification-url": "https://packagist.org/downloads/", 1867 | "license": [ 1868 | "MIT" 1869 | ], 1870 | "authors": [ 1871 | { 1872 | "name": "Fabien Potencier", 1873 | "email": "fabien@symfony.com", 1874 | "homepage": "http://fabien.potencier.org", 1875 | "role": "Lead Developer" 1876 | }, 1877 | { 1878 | "name": "Symfony Community", 1879 | "homepage": "http://symfony.com/contributors" 1880 | } 1881 | ], 1882 | "description": "Symfony HttpFoundation Component", 1883 | "homepage": "http://symfony.com", 1884 | "time": "2014-05-26 19:02:40" 1885 | }, 1886 | { 1887 | "name": "symfony/http-kernel", 1888 | "version": "v2.5.0", 1889 | "target-dir": "Symfony/Component/HttpKernel", 1890 | "source": { 1891 | "type": "git", 1892 | "url": "https://github.com/symfony/HttpKernel.git", 1893 | "reference": "432a828e796a575d4a325a0fdf14132a615d2c53" 1894 | }, 1895 | "dist": { 1896 | "type": "zip", 1897 | "url": "https://api.github.com/repos/symfony/HttpKernel/zipball/432a828e796a575d4a325a0fdf14132a615d2c53", 1898 | "reference": "432a828e796a575d4a325a0fdf14132a615d2c53", 1899 | "shasum": "" 1900 | }, 1901 | "require": { 1902 | "php": ">=5.3.3", 1903 | "psr/log": "~1.0", 1904 | "symfony/debug": "~2.5", 1905 | "symfony/event-dispatcher": "~2.1", 1906 | "symfony/http-foundation": "~2.4" 1907 | }, 1908 | "require-dev": { 1909 | "symfony/browser-kit": "~2.2", 1910 | "symfony/class-loader": "~2.1", 1911 | "symfony/config": "~2.0", 1912 | "symfony/console": "~2.2", 1913 | "symfony/dependency-injection": "~2.0", 1914 | "symfony/finder": "~2.0", 1915 | "symfony/process": "~2.0", 1916 | "symfony/routing": "~2.2", 1917 | "symfony/stopwatch": "~2.2", 1918 | "symfony/templating": "~2.2" 1919 | }, 1920 | "suggest": { 1921 | "symfony/browser-kit": "", 1922 | "symfony/class-loader": "", 1923 | "symfony/config": "", 1924 | "symfony/console": "", 1925 | "symfony/dependency-injection": "", 1926 | "symfony/finder": "" 1927 | }, 1928 | "type": "library", 1929 | "extra": { 1930 | "branch-alias": { 1931 | "dev-master": "2.5-dev" 1932 | } 1933 | }, 1934 | "autoload": { 1935 | "psr-0": { 1936 | "Symfony\\Component\\HttpKernel\\": "" 1937 | } 1938 | }, 1939 | "notification-url": "https://packagist.org/downloads/", 1940 | "license": [ 1941 | "MIT" 1942 | ], 1943 | "authors": [ 1944 | { 1945 | "name": "Fabien Potencier", 1946 | "email": "fabien@symfony.com", 1947 | "homepage": "http://fabien.potencier.org", 1948 | "role": "Lead Developer" 1949 | }, 1950 | { 1951 | "name": "Symfony Community", 1952 | "homepage": "http://symfony.com/contributors" 1953 | } 1954 | ], 1955 | "description": "Symfony HttpKernel Component", 1956 | "homepage": "http://symfony.com", 1957 | "time": "2014-05-31 18:45:50" 1958 | }, 1959 | { 1960 | "name": "symfony/process", 1961 | "version": "v2.5.0", 1962 | "target-dir": "Symfony/Component/Process", 1963 | "source": { 1964 | "type": "git", 1965 | "url": "https://github.com/symfony/Process.git", 1966 | "reference": "5d7d78e23894544740219e006320678cfa4cd45b" 1967 | }, 1968 | "dist": { 1969 | "type": "zip", 1970 | "url": "https://api.github.com/repos/symfony/Process/zipball/5d7d78e23894544740219e006320678cfa4cd45b", 1971 | "reference": "5d7d78e23894544740219e006320678cfa4cd45b", 1972 | "shasum": "" 1973 | }, 1974 | "require": { 1975 | "php": ">=5.3.3" 1976 | }, 1977 | "type": "library", 1978 | "extra": { 1979 | "branch-alias": { 1980 | "dev-master": "2.5-dev" 1981 | } 1982 | }, 1983 | "autoload": { 1984 | "psr-0": { 1985 | "Symfony\\Component\\Process\\": "" 1986 | } 1987 | }, 1988 | "notification-url": "https://packagist.org/downloads/", 1989 | "license": [ 1990 | "MIT" 1991 | ], 1992 | "authors": [ 1993 | { 1994 | "name": "Fabien Potencier", 1995 | "email": "fabien@symfony.com", 1996 | "homepage": "http://fabien.potencier.org", 1997 | "role": "Lead Developer" 1998 | }, 1999 | { 2000 | "name": "Symfony Community", 2001 | "homepage": "http://symfony.com/contributors" 2002 | } 2003 | ], 2004 | "description": "Symfony Process Component", 2005 | "homepage": "http://symfony.com", 2006 | "time": "2014-05-23 09:02:52" 2007 | }, 2008 | { 2009 | "name": "symfony/routing", 2010 | "version": "v2.5.0", 2011 | "target-dir": "Symfony/Component/Routing", 2012 | "source": { 2013 | "type": "git", 2014 | "url": "https://github.com/symfony/Routing.git", 2015 | "reference": "99b4e8e2978e6a08c086fd771cc0aa66c9e80a56" 2016 | }, 2017 | "dist": { 2018 | "type": "zip", 2019 | "url": "https://api.github.com/repos/symfony/Routing/zipball/99b4e8e2978e6a08c086fd771cc0aa66c9e80a56", 2020 | "reference": "99b4e8e2978e6a08c086fd771cc0aa66c9e80a56", 2021 | "shasum": "" 2022 | }, 2023 | "require": { 2024 | "php": ">=5.3.3" 2025 | }, 2026 | "require-dev": { 2027 | "doctrine/annotations": "~1.0", 2028 | "psr/log": "~1.0", 2029 | "symfony/config": "~2.2", 2030 | "symfony/expression-language": "~2.4", 2031 | "symfony/yaml": "~2.0" 2032 | }, 2033 | "suggest": { 2034 | "doctrine/annotations": "For using the annotation loader", 2035 | "symfony/config": "For using the all-in-one router or any loader", 2036 | "symfony/expression-language": "For using expression matching", 2037 | "symfony/yaml": "For using the YAML loader" 2038 | }, 2039 | "type": "library", 2040 | "extra": { 2041 | "branch-alias": { 2042 | "dev-master": "2.5-dev" 2043 | } 2044 | }, 2045 | "autoload": { 2046 | "psr-0": { 2047 | "Symfony\\Component\\Routing\\": "" 2048 | } 2049 | }, 2050 | "notification-url": "https://packagist.org/downloads/", 2051 | "license": [ 2052 | "MIT" 2053 | ], 2054 | "authors": [ 2055 | { 2056 | "name": "Fabien Potencier", 2057 | "email": "fabien@symfony.com", 2058 | "homepage": "http://fabien.potencier.org", 2059 | "role": "Lead Developer" 2060 | }, 2061 | { 2062 | "name": "Symfony Community", 2063 | "homepage": "http://symfony.com/contributors" 2064 | } 2065 | ], 2066 | "description": "Symfony Routing Component", 2067 | "homepage": "http://symfony.com", 2068 | "keywords": [ 2069 | "router", 2070 | "routing", 2071 | "uri", 2072 | "url" 2073 | ], 2074 | "time": "2014-04-23 14:08:54" 2075 | }, 2076 | { 2077 | "name": "symfony/security-core", 2078 | "version": "v2.5.0", 2079 | "target-dir": "Symfony/Component/Security/Core", 2080 | "source": { 2081 | "type": "git", 2082 | "url": "https://github.com/symfony/security-core.git", 2083 | "reference": "de6e3aa1362d77f6bf91f17039cd403807ee5c27" 2084 | }, 2085 | "dist": { 2086 | "type": "zip", 2087 | "url": "https://api.github.com/repos/symfony/security-core/zipball/de6e3aa1362d77f6bf91f17039cd403807ee5c27", 2088 | "reference": "de6e3aa1362d77f6bf91f17039cd403807ee5c27", 2089 | "shasum": "" 2090 | }, 2091 | "require": { 2092 | "php": ">=5.3.3" 2093 | }, 2094 | "require-dev": { 2095 | "ircmaxell/password-compat": "1.0.*", 2096 | "psr/log": "~1.0", 2097 | "symfony/event-dispatcher": "~2.1", 2098 | "symfony/expression-language": "~2.4", 2099 | "symfony/http-foundation": "~2.4", 2100 | "symfony/validator": "~2.2" 2101 | }, 2102 | "suggest": { 2103 | "ircmaxell/password-compat": "For using the BCrypt password encoder in PHP <5.5", 2104 | "symfony/event-dispatcher": "", 2105 | "symfony/expression-language": "For using the expression voter", 2106 | "symfony/http-foundation": "", 2107 | "symfony/validator": "For using the user password constraint" 2108 | }, 2109 | "type": "library", 2110 | "extra": { 2111 | "branch-alias": { 2112 | "dev-master": "2.5-dev" 2113 | } 2114 | }, 2115 | "autoload": { 2116 | "psr-0": { 2117 | "Symfony\\Component\\Security\\Core\\": "" 2118 | } 2119 | }, 2120 | "notification-url": "https://packagist.org/downloads/", 2121 | "license": [ 2122 | "MIT" 2123 | ], 2124 | "authors": [ 2125 | { 2126 | "name": "Fabien Potencier", 2127 | "email": "fabien@symfony.com", 2128 | "homepage": "http://fabien.potencier.org", 2129 | "role": "Lead Developer" 2130 | }, 2131 | { 2132 | "name": "Symfony Community", 2133 | "homepage": "http://symfony.com/contributors" 2134 | } 2135 | ], 2136 | "description": "Symfony Security Component - Core Library", 2137 | "homepage": "http://symfony.com", 2138 | "time": "2014-04-23 14:08:54" 2139 | }, 2140 | { 2141 | "name": "symfony/translation", 2142 | "version": "v2.5.0", 2143 | "target-dir": "Symfony/Component/Translation", 2144 | "source": { 2145 | "type": "git", 2146 | "url": "https://github.com/symfony/Translation.git", 2147 | "reference": "5f23265dcf8927a84be832608069c9edca3cf5f4" 2148 | }, 2149 | "dist": { 2150 | "type": "zip", 2151 | "url": "https://api.github.com/repos/symfony/Translation/zipball/5f23265dcf8927a84be832608069c9edca3cf5f4", 2152 | "reference": "5f23265dcf8927a84be832608069c9edca3cf5f4", 2153 | "shasum": "" 2154 | }, 2155 | "require": { 2156 | "php": ">=5.3.3" 2157 | }, 2158 | "require-dev": { 2159 | "symfony/config": "~2.0", 2160 | "symfony/yaml": "~2.2" 2161 | }, 2162 | "suggest": { 2163 | "symfony/config": "", 2164 | "symfony/yaml": "" 2165 | }, 2166 | "type": "library", 2167 | "extra": { 2168 | "branch-alias": { 2169 | "dev-master": "2.5-dev" 2170 | } 2171 | }, 2172 | "autoload": { 2173 | "psr-0": { 2174 | "Symfony\\Component\\Translation\\": "" 2175 | } 2176 | }, 2177 | "notification-url": "https://packagist.org/downloads/", 2178 | "license": [ 2179 | "MIT" 2180 | ], 2181 | "authors": [ 2182 | { 2183 | "name": "Fabien Potencier", 2184 | "email": "fabien@symfony.com", 2185 | "homepage": "http://fabien.potencier.org", 2186 | "role": "Lead Developer" 2187 | }, 2188 | { 2189 | "name": "Symfony Community", 2190 | "homepage": "http://symfony.com/contributors" 2191 | } 2192 | ], 2193 | "description": "Symfony Translation Component", 2194 | "homepage": "http://symfony.com", 2195 | "time": "2014-05-22 13:47:45" 2196 | } 2197 | ], 2198 | "packages-dev": [ 2199 | 2200 | ], 2201 | "aliases": [ 2202 | 2203 | ], 2204 | "minimum-stability": "stable", 2205 | "stability-flags": [ 2206 | 2207 | ], 2208 | "platform": [ 2209 | 2210 | ], 2211 | "platform-dev": [ 2212 | 2213 | ] 2214 | } 2215 | -------------------------------------------------------------------------------- /phpunit.xml: -------------------------------------------------------------------------------- 1 | 2 | 13 | 14 | 15 | ./app/tests/ 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /public/.htaccess: -------------------------------------------------------------------------------- 1 | 2 | 3 | Options -MultiViews 4 | 5 | 6 | RewriteEngine On 7 | 8 | # Redirect Trailing Slashes... 9 | RewriteRule ^(.*)/$ /$1 [L,R=301] 10 | 11 | # Handle Front Controller... 12 | RewriteCond %{REQUEST_FILENAME} !-d 13 | RewriteCond %{REQUEST_FILENAME} !-f 14 | RewriteRule ^ index.php [L] 15 | 16 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glendaviesnz/laravel-ddd/0df86d4c25812c42897a9760df45f2fa2b8df08d/public/favicon.ico -------------------------------------------------------------------------------- /public/index.php: -------------------------------------------------------------------------------- 1 | 7 | */ 8 | 9 | /* 10 | |-------------------------------------------------------------------------- 11 | | Register The Auto Loader 12 | |-------------------------------------------------------------------------- 13 | | 14 | | Composer provides a convenient, automatically generated class loader 15 | | for our application. We just need to utilize it! We'll require it 16 | | into the script here so that we do not have to worry about the 17 | | loading of any our classes "manually". Feels great to relax. 18 | | 19 | */ 20 | 21 | require __DIR__.'/../bootstrap/autoload.php'; 22 | 23 | /* 24 | |-------------------------------------------------------------------------- 25 | | Turn On The Lights 26 | |-------------------------------------------------------------------------- 27 | | 28 | | We need to illuminate PHP development, so let's turn on the lights. 29 | | This bootstraps the framework and gets it ready for use, then it 30 | | will load up this application so that we can run it and send 31 | | the responses back to the browser and delight these users. 32 | | 33 | */ 34 | 35 | $app = require_once __DIR__.'/../bootstrap/start.php'; 36 | 37 | /* 38 | |-------------------------------------------------------------------------- 39 | | Run The Application 40 | |-------------------------------------------------------------------------- 41 | | 42 | | Once we have the application, we can simply call the run method, 43 | | which will execute the request and send the response back to 44 | | the client's browser allowing them to enjoy the creative 45 | | and wonderful application we have whipped up for them. 46 | | 47 | */ 48 | 49 | $app->run(); 50 | -------------------------------------------------------------------------------- /public/packages/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glendaviesnz/laravel-ddd/0df86d4c25812c42897a9760df45f2fa2b8df08d/public/packages/.gitkeep -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: 3 | -------------------------------------------------------------------------------- /server.php: -------------------------------------------------------------------------------- 1 |