├── .env.example
├── .gitignore
├── Dockerfile
├── README.md
├── app
├── Console
│ ├── Commands
│ │ └── Inspire.php
│ └── Kernel.php
├── Contact.php
├── Events
│ └── Event.php
├── Exceptions
│ └── Handler.php
├── Http
│ ├── Controllers
│ │ ├── Auth
│ │ │ ├── AuthController.php
│ │ │ └── PasswordController.php
│ │ └── Controller.php
│ ├── Kernel.php
│ ├── Middleware
│ │ ├── Authenticate.php
│ │ ├── EncryptCookies.php
│ │ ├── RedirectIfAuthenticated.php
│ │ └── VerifyCsrfToken.php
│ ├── Requests
│ │ └── Request.php
│ └── routes.php
├── Jobs
│ └── Job.php
├── Listeners
│ └── .gitkeep
└── Providers
│ ├── AppServiceProvider.php
│ ├── EventServiceProvider.php
│ └── RouteServiceProvider.php
├── artisan
├── bootstrap
├── app.php
├── autoload.php
└── cache
│ └── .gitignore
├── composer.json
├── composer.lock
├── config
├── app.php
├── auth.php
├── broadcasting.php
├── cache.php
├── compile.php
├── database.php
├── filesystems.php
├── mail.php
├── queue.php
├── services.php
├── session.php
└── view.php
├── database
├── .gitignore
├── factories
│ └── ModelFactory.php
├── migrations
│ ├── .gitkeep
│ └── 2015_07_13_082655_create_contacts_table.php
└── seeds
│ ├── .gitkeep
│ ├── ContactSeeder.php
│ └── DatabaseSeeder.php
├── gulpfile.js
├── package.json
├── php-laravel-mysql-sample.png
├── phpspec.yml
├── phpunit.xml
├── public
├── .htaccess
├── favicon.ico
├── index.php
└── robots.txt
├── resources
├── assets
│ └── sass
│ │ └── app.scss
├── lang
│ └── en
│ │ ├── pagination.php
│ │ ├── passwords.php
│ │ └── validation.php
└── views
│ ├── contacts.blade.php
│ ├── errors
│ └── 503.blade.php
│ └── welcome.blade.php
├── server.php
├── storage
├── app
│ └── .gitignore
├── framework
│ ├── .gitignore
│ ├── cache
│ │ └── .gitignore
│ ├── sessions
│ │ └── .gitignore
│ └── views
│ │ └── .gitignore
└── logs
│ └── .gitignore
└── tests
├── ExampleTest.php
└── TestCase.php
/.env.example:
--------------------------------------------------------------------------------
1 | APP_ENV=local
2 | APP_DEBUG=true
3 | APP_KEY=SomeRandomString
4 |
5 | DB_HOST=localhost
6 | DB_DATABASE=homestead
7 | DB_USERNAME=homestead
8 | DB_PASSWORD=secret
9 |
10 | CACHE_DRIVER=file
11 | SESSION_DRIVER=file
12 | QUEUE_DRIVER=sync
13 |
14 | MAIL_DRIVER=smtp
15 | MAIL_HOST=mailtrap.io
16 | MAIL_PORT=2525
17 | MAIL_USERNAME=null
18 | MAIL_PASSWORD=null
19 | MAIL_ENCRYPTION=null
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /vendor
2 | /node_modules
3 | .env
4 | .idea/
5 | _ide_helper.php
6 | storage/database.sqlite
7 | tests/_output/*
--------------------------------------------------------------------------------
/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM daocloud.io/php:5.6-apache
2 |
3 | # APT 自动安装 PHP 相关的依赖包,如需其他依赖包在此添加
4 | RUN apt-get update \
5 | && apt-get install -y \
6 | libmcrypt-dev \
7 | libz-dev \
8 | git \
9 | wget \
10 | libpcre3-dev \
11 |
12 | # 官方 PHP 镜像内置命令,安装 PHP 依赖
13 | && docker-php-ext-install \
14 | mcrypt \
15 | mbstring \
16 | pdo_mysql \
17 | zip \
18 |
19 |
20 | # 用完包管理器后安排打扫卫生可以显著的减少镜像大小
21 | && apt-get clean \
22 | && apt-get autoclean \
23 | && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \
24 |
25 | # 安装 Composer,此物是 PHP 用来管理依赖关系的工具
26 | && curl -sS https://getcomposer.org/installer \
27 | | php -- --install-dir=/usr/local/bin --filename=composer
28 |
29 | # 开启 URL 重写模块
30 | # 配置默认放置 App 的目录
31 | RUN a2enmod rewrite \
32 | && mkdir -p /app \
33 | && rm -fr /var/www/html \
34 | && ln -s /app/public /var/www/html
35 |
36 | WORKDIR /app
37 |
38 | # 预先加载 Composer 包依赖,优化 Docker 构建镜像的速度
39 | COPY ./composer.json /app/
40 | COPY ./composer.lock /app/
41 | RUN composer install --no-autoloader --no-scripts
42 |
43 | # 复制代码到 App 目录
44 | COPY . /app
45 |
46 | # 执行 Composer 自动加载和相关脚本
47 | # 修改目录权限
48 | RUN composer install \
49 | && chown -R www-data:www-data /app \
50 | && chmod -R 0777 /app/storage
51 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 如何开发一个 Laravel + MySQL 框架的 Docker 化应用
2 |
3 | > 目标:基于主流的 PHP 框架,用 Docker 镜像的方式搭建一个 Laravel + MySQL 的应用。
4 |
5 | > 本项目代码维护在 **[DaoCloud/php-laravel-mysql-sample](https://github.com/DaoCloud/php-laravel-mysql-sample)** 项目中。
6 |
7 | ### 创建 Laravel 应用容器
8 |
9 | > 因所有官方镜像均位于境外服务器,为了确保所有示例能正常运行,DaoCloud 提供了一套境内镜像源,并与官方源保持同步。
10 |
11 | 首先,选择官方的 PHP 镜像作为项目的基础镜像。
12 |
13 | ```dockerfile
14 | FROM daocloud.io/php:5.6-apache
15 | ```
16 |
17 | 其次,通过安装脚本安装 Laravel 应用所需要的 PHP 依赖。
18 |
19 | ```dockerfile
20 | # 安装 PHP 相关的依赖包,如需其他依赖包在此添加
21 | RUN apt-get update \
22 | && apt-get install -y \
23 | libmcrypt-dev \
24 | libz-dev \
25 | git \
26 | wget \
27 |
28 | # 官方 PHP 镜像内置命令,安装 PHP 依赖
29 | && docker-php-ext-install \
30 | mcrypt \
31 | mbstring \
32 | pdo_mysql \
33 | zip \
34 |
35 |
36 | # 用完包管理器后安排打扫卫生可以显著的减少镜像大小
37 | && apt-get clean \
38 | && apt-get autoclean \
39 | && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \
40 |
41 | # 安装 Composer,此物是 PHP 用来管理依赖关系的工具
42 | && curl -sS https://getcomposer.org/installer \
43 | | php -- --install-dir=/usr/local/bin --filename=composer
44 | ```
45 |
46 | * 依赖包通过 `docker-php-ext-install` 安装,如果依赖包需要配置参数则通过 `docker-php-ext-configure` 命令。
47 | * Docker 镜像采用分层数据存储格式,镜像的大小等于所有层次大小的总和,所以我们应该尽量精简每次构建所产生镜像的大小。
48 | * Composer 为 Laravel 下载第三方 Vendor 包所必需的插件,Composer 同时也是 PHP 最流行的包管理工具。
49 |
50 | 接着,创建 Laravel 目录结构:
51 |
52 | ```dockerfile
53 | # 开启 URL 重写模块
54 | # 配置默认放置 App 的目录
55 | RUN a2enmod rewrite \
56 | && mkdir -p /app \
57 | && rm -fr /var/www/html \
58 | && ln -s /app/public /var/www/html
59 |
60 | WORKDIR /app
61 | ```
62 |
63 | * Laravel 是通过统一的项目的入口文件进入应用系统的。进而需要 Apache 开启链接重写模块。
64 | * Apache 默认的文档目录为 `/var/www/html`,将 `/app` 定义为 Laravel 应用目录,而 Laravel 的项目入口文件位于 `/app/public`。为了方便管理,把 `/var/www/html` 软链接到 `/app/public`。
65 |
66 | 紧接着,根据 DaoCloud 的最佳实践,我们需要把第三方依赖预先加载好。
67 |
68 | ```dockerfile
69 | # 预先加载 Composer 包依赖,优化 Docker 构建镜像的速度
70 | COPY ./composer.json /app/
71 | COPY ./composer.lock /app/
72 | RUN composer install --no-autoloader --no-scripts
73 | ```
74 |
75 | * 复制 `composer.json` 和 `composer.lock` 到 `/app`, `composer.lock` 会锁定 Composer 加载的依赖包版本号,防止由于第三方依赖包的版本不同导致的应用运行错误。
76 | * `--no-autoloader` 为了阻止 `composer install` 之后进行的自动加载,防止由于代码不全导致的自动加载报错。
77 | * `--no-scripts` 为了阻止 `composer install` 运行时 `composer.json` 所定义的脚本,同样是防止代码不全导致的加载错误问题。
78 |
79 | 然后,将 Laravel 应用程序复制到 `/app`:
80 |
81 | ```dockerfile
82 | # 复制代码到 App 目录
83 | COPY . /app
84 |
85 | # 执行 Composer 自动加载和相关脚本
86 | # 修改目录权限
87 | RUN composer install \
88 | && chown -R www-data:www-data /app \
89 | && chmod -R 0777 /app/storage
90 | ```
91 |
92 | * `composer install` 执行之前阻止的操作,完成自动加载及脚本运行
93 | * 修改 `/app` 与 `/app/storage` 的权限,保证 Laravel 在运行中有足够的权限
94 | * 因为基础镜像内已经声明了暴露端口和启动命令,此处可以省略。
95 |
96 | 至此,包含 Laravel 应用的 Docker 容器已经准备好了。Laravel 代码中访问数据库所需的参数,是通过读取环境变量的方式声明的。
97 |
98 | `config/database.php` 修改变量为更贴近 Docker 的方式:
99 |
100 | ```php
101 | 'host' => env('MYSQL_PORT_3306_TCP_ADDR', 'localhost'),
102 | 'database' => env('MYSQL_INSTANCE_NAME', 'forge'),
103 | 'username' => env('MYSQL_USERNAME', 'forge'),
104 | 'password' => env('MYSQL_PASSWORD', ''),
105 | ```
106 |
107 | 这样做是因为在 Docker 化应用开发的最佳实践中,通常将有状态的数据类服务放在另一个容器内运行,并通过容器特有的 `link` 机制将应用容器与数据容器动态的连接在一起。
108 |
109 | ### 绑定 MySQL 数据容器(本地)
110 |
111 | 首先,需要创建一个 MySQL 容器。
112 |
113 | ```bash
114 | docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d daocloud.io/mysql:5.5
115 | ```
116 |
117 | 之后,通过 Docker 容器间的 `link` 机制,便可将 MySQL 的默认端口 (3306) 暴露给应用容器。
118 |
119 | ```bash
120 | docker run --name some-app --link some-mysql:mysql -d app-that-uses-mysql
121 | ```
122 |
123 | ### 绑定 MySQL 数据服务(云端)
124 |
125 | 比起本地创建,在云端创建和绑定 MySQL 数据服务会更简单。
126 |
127 | 1. 在 GitHub 上 Fork **[DaoCloud/php-laravel-mysql-sample](https://github.com/DaoCloud/php-laravel-mysql-sample)** 或者添加自己的代码仓库。
128 | 2. 注册成为 DaoCloud 用户。
129 | 3. 在 DaoCloud 「控制台」中选择「代码构建」。
130 | 4. 创建新项目,选择代码源,开始构建镜像。
131 | 5. 在「服务集成」创建 MySQL 服务实例。
132 | 6. 将构建的应用镜像关联 MySQL 服务实例并部署在云端。
133 |
134 | DaoCloud 使用图文介绍
135 |
136 | * 了解如何用 DaoCloud 进行代码构建:参考[代码构建](http://help.daocloud.io/features/build-flows.html)。
137 | * 了解如何用 DaoCloud 进行持续集成:参考[持续集成](http://help.daocloud.io/features/continuous-integration/index.html)。
138 | * 了解如何用为应用准备一个数据库服务:参考[服务集成](http://help.daocloud.io/features/services.html)。
139 | * 了解如何部署一个刚刚构建好的应用镜像:参考[应用部署](http://help.daocloud.io/features/packages.html)。
140 |
141 | [DaoCloud 使用视频介绍](http://7u2psl.com2.z0.glb.qiniucdn.com/daocloud_small.mp4)
142 |
143 | ### php-laravel-mysql-sample 应用截图
144 |
145 | 
146 |
--------------------------------------------------------------------------------
/app/Console/Commands/Inspire.php:
--------------------------------------------------------------------------------
1 | comment(PHP_EOL.Inspiring::quote().PHP_EOL);
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/app/Console/Kernel.php:
--------------------------------------------------------------------------------
1 | command('inspire')
28 | ->hourly();
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/app/Contact.php:
--------------------------------------------------------------------------------
1 | middleware('guest', ['except' => 'getLogout']);
34 | }
35 |
36 | /**
37 | * Get a validator for an incoming registration request.
38 | *
39 | * @param array $data
40 | * @return \Illuminate\Contracts\Validation\Validator
41 | */
42 | protected function validator(array $data)
43 | {
44 | return Validator::make($data, [
45 | 'name' => 'required|max:255',
46 | 'email' => 'required|email|max:255|unique:users',
47 | 'password' => 'required|confirmed|min:6',
48 | ]);
49 | }
50 |
51 | /**
52 | * Create a new user instance after a valid registration.
53 | *
54 | * @param array $data
55 | * @return User
56 | */
57 | protected function create(array $data)
58 | {
59 | return User::create([
60 | 'name' => $data['name'],
61 | 'email' => $data['email'],
62 | 'password' => bcrypt($data['password']),
63 | ]);
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/app/Http/Controllers/Auth/PasswordController.php:
--------------------------------------------------------------------------------
1 | middleware('guest');
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/app/Http/Controllers/Controller.php:
--------------------------------------------------------------------------------
1 | \App\Http\Middleware\Authenticate::class,
30 | 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
31 | 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
32 | ];
33 | }
34 |
--------------------------------------------------------------------------------
/app/Http/Middleware/Authenticate.php:
--------------------------------------------------------------------------------
1 | auth = $auth;
26 | }
27 |
28 | /**
29 | * Handle an incoming request.
30 | *
31 | * @param \Illuminate\Http\Request $request
32 | * @param \Closure $next
33 | * @return mixed
34 | */
35 | public function handle($request, Closure $next)
36 | {
37 | if ($this->auth->guest()) {
38 | if ($request->ajax()) {
39 | return response('Unauthorized.', 401);
40 | } else {
41 | return redirect()->guest('auth/login');
42 | }
43 | }
44 |
45 | return $next($request);
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/app/Http/Middleware/EncryptCookies.php:
--------------------------------------------------------------------------------
1 | auth = $auth;
26 | }
27 |
28 | /**
29 | * Handle an incoming request.
30 | *
31 | * @param \Illuminate\Http\Request $request
32 | * @param \Closure $next
33 | * @return mixed
34 | */
35 | public function handle($request, Closure $next)
36 | {
37 | if ($this->auth->check()) {
38 | return redirect('/home');
39 | }
40 |
41 | return $next($request);
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/app/Http/Middleware/VerifyCsrfToken.php:
--------------------------------------------------------------------------------
1 | true]);
22 | Artisan::call('db:seed', ['--force' => true]);
23 | }
24 |
25 |
26 | $contacts = Contact::all();
27 |
28 | return view('contacts')
29 | ->with('contacts', $contacts);
30 | });
31 |
32 | Route::post('/', function () {
33 | Contact::create(Input::all());
34 |
35 | return back();
36 | });
37 |
38 | Route::get('/{id}/delete', function ($id) {
39 | $contact = Contact::find($id);
40 |
41 | $contact->delete();
42 |
43 | return back();
44 | });
--------------------------------------------------------------------------------
/app/Jobs/Job.php:
--------------------------------------------------------------------------------
1 | [
17 | 'App\Listeners\EventListener',
18 | ],
19 | ];
20 |
21 | /**
22 | * Register any other events for your application.
23 | *
24 | * @param \Illuminate\Contracts\Events\Dispatcher $events
25 | * @return void
26 | */
27 | public function boot(DispatcherContract $events)
28 | {
29 | parent::boot($events);
30 |
31 | //
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/app/Providers/RouteServiceProvider.php:
--------------------------------------------------------------------------------
1 | group(['namespace' => $this->namespace], function ($router) {
41 | require app_path('Http/routes.php');
42 | });
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/artisan:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env php
2 | make(Illuminate\Contracts\Console\Kernel::class);
32 |
33 | $status = $kernel->handle(
34 | $input = new Symfony\Component\Console\Input\ArgvInput,
35 | new Symfony\Component\Console\Output\ConsoleOutput
36 | );
37 |
38 | /*
39 | |--------------------------------------------------------------------------
40 | | Shutdown The Application
41 | |--------------------------------------------------------------------------
42 | |
43 | | Once Artisan has finished running. We will fire off the shutdown events
44 | | so that any final work may be done by the application before we shut
45 | | down the process. This is the last thing to happen to the request.
46 | |
47 | */
48 |
49 | $kernel->terminate($input, $status);
50 |
51 | exit($status);
52 |
--------------------------------------------------------------------------------
/bootstrap/app.php:
--------------------------------------------------------------------------------
1 | singleton(
30 | Illuminate\Contracts\Http\Kernel::class,
31 | App\Http\Kernel::class
32 | );
33 |
34 | $app->singleton(
35 | Illuminate\Contracts\Console\Kernel::class,
36 | App\Console\Kernel::class
37 | );
38 |
39 | $app->singleton(
40 | Illuminate\Contracts\Debug\ExceptionHandler::class,
41 | App\Exceptions\Handler::class
42 | );
43 |
44 | /*
45 | |--------------------------------------------------------------------------
46 | | Return The Application
47 | |--------------------------------------------------------------------------
48 | |
49 | | This script returns the application instance. The instance is given to
50 | | the calling script so we can separate the building of the instances
51 | | from the actual running of the application and sending responses.
52 | |
53 | */
54 |
55 | return $app;
56 |
--------------------------------------------------------------------------------
/bootstrap/autoload.php:
--------------------------------------------------------------------------------
1 | =5.5.9",
9 | "laravel/framework": "5.1.*"
10 | },
11 | "require-dev": {
12 | "fzaninotto/faker": "~1.4",
13 | "mockery/mockery": "0.9.*",
14 | "phpunit/phpunit": "~4.0",
15 | "phpspec/phpspec": "~2.1"
16 | },
17 | "autoload": {
18 | "classmap": [
19 | "database"
20 | ],
21 | "psr-4": {
22 | "App\\": "app/"
23 | }
24 | },
25 | "autoload-dev": {
26 | "classmap": [
27 | "tests/TestCase.php"
28 | ]
29 | },
30 | "scripts": {
31 | "post-install-cmd": [
32 | "php artisan clear-compiled",
33 | "php artisan optimize"
34 | ],
35 | "pre-update-cmd": [
36 | "php artisan clear-compiled"
37 | ],
38 | "post-update-cmd": [
39 | "php artisan optimize"
40 | ],
41 | "post-root-package-install": [
42 | "php -r \"copy('.env.example', '.env');\""
43 | ],
44 | "post-create-project-cmd": [
45 | "php artisan key:generate"
46 | ]
47 | },
48 | "config": {
49 | "preferred-install": "dist"
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/composer.lock:
--------------------------------------------------------------------------------
1 | {
2 | "_readme": [
3 | "This file locks the dependencies of your project to a known state",
4 | "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
5 | "This file is @generated automatically"
6 | ],
7 | "hash": "5c6026b96e6fa11a641b51a6ba976f5e",
8 | "packages": [
9 | {
10 | "name": "classpreloader/classpreloader",
11 | "version": "2.0.0",
12 | "source": {
13 | "type": "git",
14 | "url": "https://github.com/ClassPreloader/ClassPreloader.git",
15 | "reference": "8c3c14b10309e3b40bce833913a6c0c0b8c8f962"
16 | },
17 | "dist": {
18 | "type": "zip",
19 | "url": "https://api.github.com/repos/ClassPreloader/ClassPreloader/zipball/8c3c14b10309e3b40bce833913a6c0c0b8c8f962",
20 | "reference": "8c3c14b10309e3b40bce833913a6c0c0b8c8f962",
21 | "shasum": ""
22 | },
23 | "require": {
24 | "nikic/php-parser": "~1.3",
25 | "php": ">=5.5.9"
26 | },
27 | "require-dev": {
28 | "phpunit/phpunit": "~4.0"
29 | },
30 | "type": "library",
31 | "extra": {
32 | "branch-alias": {
33 | "dev-master": "2.0-dev"
34 | }
35 | },
36 | "autoload": {
37 | "psr-4": {
38 | "ClassPreloader\\": "src/"
39 | }
40 | },
41 | "notification-url": "https://packagist.org/downloads/",
42 | "license": [
43 | "MIT"
44 | ],
45 | "authors": [
46 | {
47 | "name": "Michael Dowling",
48 | "email": "mtdowling@gmail.com"
49 | },
50 | {
51 | "name": "Graham Campbell",
52 | "email": "graham@alt-three.com"
53 | }
54 | ],
55 | "description": "Helps class loading performance by generating a single PHP file containing all of the autoloaded files for a specific use case",
56 | "keywords": [
57 | "autoload",
58 | "class",
59 | "preload"
60 | ],
61 | "time": "2015-06-28 21:39:13"
62 | },
63 | {
64 | "name": "danielstjules/stringy",
65 | "version": "1.9.0",
66 | "source": {
67 | "type": "git",
68 | "url": "https://github.com/danielstjules/Stringy.git",
69 | "reference": "3cf18e9e424a6dedc38b7eb7ef580edb0929461b"
70 | },
71 | "dist": {
72 | "type": "zip",
73 | "url": "https://api.github.com/repos/danielstjules/Stringy/zipball/3cf18e9e424a6dedc38b7eb7ef580edb0929461b",
74 | "reference": "3cf18e9e424a6dedc38b7eb7ef580edb0929461b",
75 | "shasum": ""
76 | },
77 | "require": {
78 | "ext-mbstring": "*",
79 | "php": ">=5.3.0"
80 | },
81 | "require-dev": {
82 | "phpunit/phpunit": "~4.0"
83 | },
84 | "type": "library",
85 | "autoload": {
86 | "psr-4": {
87 | "Stringy\\": "src/"
88 | },
89 | "files": [
90 | "src/Create.php"
91 | ]
92 | },
93 | "notification-url": "https://packagist.org/downloads/",
94 | "license": [
95 | "MIT"
96 | ],
97 | "authors": [
98 | {
99 | "name": "Daniel St. Jules",
100 | "email": "danielst.jules@gmail.com",
101 | "homepage": "http://www.danielstjules.com"
102 | }
103 | ],
104 | "description": "A string manipulation library with multibyte support",
105 | "homepage": "https://github.com/danielstjules/Stringy",
106 | "keywords": [
107 | "UTF",
108 | "helpers",
109 | "manipulation",
110 | "methods",
111 | "multibyte",
112 | "string",
113 | "utf-8",
114 | "utility",
115 | "utils"
116 | ],
117 | "time": "2015-02-10 06:19:18"
118 | },
119 | {
120 | "name": "dnoegel/php-xdg-base-dir",
121 | "version": "0.1",
122 | "source": {
123 | "type": "git",
124 | "url": "https://github.com/dnoegel/php-xdg-base-dir.git",
125 | "reference": "265b8593498b997dc2d31e75b89f053b5cc9621a"
126 | },
127 | "dist": {
128 | "type": "zip",
129 | "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/265b8593498b997dc2d31e75b89f053b5cc9621a",
130 | "reference": "265b8593498b997dc2d31e75b89f053b5cc9621a",
131 | "shasum": ""
132 | },
133 | "require": {
134 | "php": ">=5.3.2"
135 | },
136 | "require-dev": {
137 | "phpunit/phpunit": "@stable"
138 | },
139 | "type": "project",
140 | "autoload": {
141 | "psr-4": {
142 | "XdgBaseDir\\": "src/"
143 | }
144 | },
145 | "notification-url": "https://packagist.org/downloads/",
146 | "license": [
147 | "MIT"
148 | ],
149 | "description": "implementation of xdg base directory specification for php",
150 | "time": "2014-10-24 07:27:01"
151 | },
152 | {
153 | "name": "doctrine/inflector",
154 | "version": "v1.0.1",
155 | "source": {
156 | "type": "git",
157 | "url": "https://github.com/doctrine/inflector.git",
158 | "reference": "0bcb2e79d8571787f18b7eb036ed3d004908e604"
159 | },
160 | "dist": {
161 | "type": "zip",
162 | "url": "https://api.github.com/repos/doctrine/inflector/zipball/0bcb2e79d8571787f18b7eb036ed3d004908e604",
163 | "reference": "0bcb2e79d8571787f18b7eb036ed3d004908e604",
164 | "shasum": ""
165 | },
166 | "require": {
167 | "php": ">=5.3.2"
168 | },
169 | "require-dev": {
170 | "phpunit/phpunit": "4.*"
171 | },
172 | "type": "library",
173 | "extra": {
174 | "branch-alias": {
175 | "dev-master": "1.0.x-dev"
176 | }
177 | },
178 | "autoload": {
179 | "psr-0": {
180 | "Doctrine\\Common\\Inflector\\": "lib/"
181 | }
182 | },
183 | "notification-url": "https://packagist.org/downloads/",
184 | "license": [
185 | "MIT"
186 | ],
187 | "authors": [
188 | {
189 | "name": "Roman Borschel",
190 | "email": "roman@code-factory.org"
191 | },
192 | {
193 | "name": "Benjamin Eberlei",
194 | "email": "kontakt@beberlei.de"
195 | },
196 | {
197 | "name": "Guilherme Blanco",
198 | "email": "guilhermeblanco@gmail.com"
199 | },
200 | {
201 | "name": "Jonathan Wage",
202 | "email": "jonwage@gmail.com"
203 | },
204 | {
205 | "name": "Johannes Schmitt",
206 | "email": "schmittjoh@gmail.com"
207 | }
208 | ],
209 | "description": "Common String Manipulations with regard to casing and singular/plural rules.",
210 | "homepage": "http://www.doctrine-project.org",
211 | "keywords": [
212 | "inflection",
213 | "pluralize",
214 | "singularize",
215 | "string"
216 | ],
217 | "time": "2014-12-20 21:24:13"
218 | },
219 | {
220 | "name": "jakub-onderka/php-console-color",
221 | "version": "0.1",
222 | "source": {
223 | "type": "git",
224 | "url": "https://github.com/JakubOnderka/PHP-Console-Color.git",
225 | "reference": "e0b393dacf7703fc36a4efc3df1435485197e6c1"
226 | },
227 | "dist": {
228 | "type": "zip",
229 | "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Color/zipball/e0b393dacf7703fc36a4efc3df1435485197e6c1",
230 | "reference": "e0b393dacf7703fc36a4efc3df1435485197e6c1",
231 | "shasum": ""
232 | },
233 | "require": {
234 | "php": ">=5.3.2"
235 | },
236 | "require-dev": {
237 | "jakub-onderka/php-code-style": "1.0",
238 | "jakub-onderka/php-parallel-lint": "0.*",
239 | "jakub-onderka/php-var-dump-check": "0.*",
240 | "phpunit/phpunit": "3.7.*",
241 | "squizlabs/php_codesniffer": "1.*"
242 | },
243 | "type": "library",
244 | "autoload": {
245 | "psr-0": {
246 | "JakubOnderka\\PhpConsoleColor": "src/"
247 | }
248 | },
249 | "notification-url": "https://packagist.org/downloads/",
250 | "license": [
251 | "BSD-2-Clause"
252 | ],
253 | "authors": [
254 | {
255 | "name": "Jakub Onderka",
256 | "email": "jakub.onderka@gmail.com",
257 | "homepage": "http://www.acci.cz"
258 | }
259 | ],
260 | "time": "2014-04-08 15:00:19"
261 | },
262 | {
263 | "name": "jakub-onderka/php-console-highlighter",
264 | "version": "v0.3.2",
265 | "source": {
266 | "type": "git",
267 | "url": "https://github.com/JakubOnderka/PHP-Console-Highlighter.git",
268 | "reference": "7daa75df45242c8d5b75a22c00a201e7954e4fb5"
269 | },
270 | "dist": {
271 | "type": "zip",
272 | "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Highlighter/zipball/7daa75df45242c8d5b75a22c00a201e7954e4fb5",
273 | "reference": "7daa75df45242c8d5b75a22c00a201e7954e4fb5",
274 | "shasum": ""
275 | },
276 | "require": {
277 | "jakub-onderka/php-console-color": "~0.1",
278 | "php": ">=5.3.0"
279 | },
280 | "require-dev": {
281 | "jakub-onderka/php-code-style": "~1.0",
282 | "jakub-onderka/php-parallel-lint": "~0.5",
283 | "jakub-onderka/php-var-dump-check": "~0.1",
284 | "phpunit/phpunit": "~4.0",
285 | "squizlabs/php_codesniffer": "~1.5"
286 | },
287 | "type": "library",
288 | "autoload": {
289 | "psr-0": {
290 | "JakubOnderka\\PhpConsoleHighlighter": "src/"
291 | }
292 | },
293 | "notification-url": "https://packagist.org/downloads/",
294 | "license": [
295 | "MIT"
296 | ],
297 | "authors": [
298 | {
299 | "name": "Jakub Onderka",
300 | "email": "acci@acci.cz",
301 | "homepage": "http://www.acci.cz/"
302 | }
303 | ],
304 | "time": "2015-04-20 18:58:01"
305 | },
306 | {
307 | "name": "jeremeamia/SuperClosure",
308 | "version": "2.1.0",
309 | "source": {
310 | "type": "git",
311 | "url": "https://github.com/jeremeamia/super_closure.git",
312 | "reference": "b712f39c671e5ead60c7ebfe662545456aade833"
313 | },
314 | "dist": {
315 | "type": "zip",
316 | "url": "https://api.github.com/repos/jeremeamia/super_closure/zipball/b712f39c671e5ead60c7ebfe662545456aade833",
317 | "reference": "b712f39c671e5ead60c7ebfe662545456aade833",
318 | "shasum": ""
319 | },
320 | "require": {
321 | "nikic/php-parser": "~1.0",
322 | "php": ">=5.4"
323 | },
324 | "require-dev": {
325 | "codeclimate/php-test-reporter": "~0.1.2",
326 | "phpunit/phpunit": "~4.0"
327 | },
328 | "type": "library",
329 | "extra": {
330 | "branch-alias": {
331 | "dev-master": "2.1-dev"
332 | }
333 | },
334 | "autoload": {
335 | "psr-4": {
336 | "SuperClosure\\": "src/"
337 | }
338 | },
339 | "notification-url": "https://packagist.org/downloads/",
340 | "license": [
341 | "MIT"
342 | ],
343 | "authors": [
344 | {
345 | "name": "Jeremy Lindblom",
346 | "email": "jeremeamia@gmail.com",
347 | "homepage": "https://github.com/jeremeamia",
348 | "role": "Developer"
349 | }
350 | ],
351 | "description": "Serialize Closure objects, including their context and binding",
352 | "homepage": "https://github.com/jeremeamia/super_closure",
353 | "keywords": [
354 | "closure",
355 | "function",
356 | "lambda",
357 | "parser",
358 | "serializable",
359 | "serialize",
360 | "tokenizer"
361 | ],
362 | "time": "2015-03-11 20:06:43"
363 | },
364 | {
365 | "name": "laravel/framework",
366 | "version": "v5.1.6",
367 | "source": {
368 | "type": "git",
369 | "url": "https://github.com/laravel/framework.git",
370 | "reference": "356418f315e4f6bf55d2f4bd451606e45a7595df"
371 | },
372 | "dist": {
373 | "type": "zip",
374 | "url": "https://api.github.com/repos/laravel/framework/zipball/356418f315e4f6bf55d2f4bd451606e45a7595df",
375 | "reference": "356418f315e4f6bf55d2f4bd451606e45a7595df",
376 | "shasum": ""
377 | },
378 | "require": {
379 | "classpreloader/classpreloader": "~2.0",
380 | "danielstjules/stringy": "~1.8",
381 | "doctrine/inflector": "~1.0",
382 | "ext-mbstring": "*",
383 | "ext-openssl": "*",
384 | "jeremeamia/superclosure": "~2.0",
385 | "league/flysystem": "~1.0",
386 | "monolog/monolog": "~1.11",
387 | "mtdowling/cron-expression": "~1.0",
388 | "nesbot/carbon": "~1.19",
389 | "php": ">=5.5.9",
390 | "psy/psysh": "0.4.*",
391 | "swiftmailer/swiftmailer": "~5.1",
392 | "symfony/console": "2.7.*",
393 | "symfony/css-selector": "2.7.*",
394 | "symfony/debug": "2.7.*",
395 | "symfony/dom-crawler": "2.7.*",
396 | "symfony/finder": "2.7.*",
397 | "symfony/http-foundation": "2.7.*",
398 | "symfony/http-kernel": "2.7.*",
399 | "symfony/process": "2.7.*",
400 | "symfony/routing": "2.7.*",
401 | "symfony/translation": "2.7.*",
402 | "symfony/var-dumper": "2.7.*",
403 | "vlucas/phpdotenv": "~1.0"
404 | },
405 | "replace": {
406 | "illuminate/auth": "self.version",
407 | "illuminate/broadcasting": "self.version",
408 | "illuminate/bus": "self.version",
409 | "illuminate/cache": "self.version",
410 | "illuminate/config": "self.version",
411 | "illuminate/console": "self.version",
412 | "illuminate/container": "self.version",
413 | "illuminate/contracts": "self.version",
414 | "illuminate/cookie": "self.version",
415 | "illuminate/database": "self.version",
416 | "illuminate/encryption": "self.version",
417 | "illuminate/events": "self.version",
418 | "illuminate/exception": "self.version",
419 | "illuminate/filesystem": "self.version",
420 | "illuminate/foundation": "self.version",
421 | "illuminate/hashing": "self.version",
422 | "illuminate/http": "self.version",
423 | "illuminate/log": "self.version",
424 | "illuminate/mail": "self.version",
425 | "illuminate/pagination": "self.version",
426 | "illuminate/pipeline": "self.version",
427 | "illuminate/queue": "self.version",
428 | "illuminate/redis": "self.version",
429 | "illuminate/routing": "self.version",
430 | "illuminate/session": "self.version",
431 | "illuminate/support": "self.version",
432 | "illuminate/translation": "self.version",
433 | "illuminate/validation": "self.version",
434 | "illuminate/view": "self.version"
435 | },
436 | "require-dev": {
437 | "aws/aws-sdk-php": "~3.0",
438 | "iron-io/iron_mq": "~2.0",
439 | "mockery/mockery": "~0.9.1",
440 | "pda/pheanstalk": "~3.0",
441 | "phpunit/phpunit": "~4.0",
442 | "predis/predis": "~1.0"
443 | },
444 | "suggest": {
445 | "aws/aws-sdk-php": "Required to use the SQS queue driver and SES mail driver (~3.0).",
446 | "doctrine/dbal": "Required to rename columns and drop SQLite columns (~2.4).",
447 | "fzaninotto/faker": "Required to use the eloquent factory builder (~1.4).",
448 | "guzzlehttp/guzzle": "Required to use the Mailgun and Mandrill mail drivers (~5.3|~6.0).",
449 | "iron-io/iron_mq": "Required to use the iron queue driver (~2.0).",
450 | "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (~1.0).",
451 | "league/flysystem-rackspace": "Required to use the Flysystem Rackspace driver (~1.0).",
452 | "pda/pheanstalk": "Required to use the beanstalk queue driver (~3.0).",
453 | "predis/predis": "Required to use the redis cache and queue drivers (~1.0).",
454 | "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (~2.0)."
455 | },
456 | "type": "library",
457 | "extra": {
458 | "branch-alias": {
459 | "dev-master": "5.1-dev"
460 | }
461 | },
462 | "autoload": {
463 | "classmap": [
464 | "src/Illuminate/Queue/IlluminateQueueClosure.php"
465 | ],
466 | "files": [
467 | "src/Illuminate/Foundation/helpers.php",
468 | "src/Illuminate/Support/helpers.php"
469 | ],
470 | "psr-4": {
471 | "Illuminate\\": "src/Illuminate/"
472 | }
473 | },
474 | "notification-url": "https://packagist.org/downloads/",
475 | "license": [
476 | "MIT"
477 | ],
478 | "authors": [
479 | {
480 | "name": "Taylor Otwell",
481 | "email": "taylorotwell@gmail.com"
482 | }
483 | ],
484 | "description": "The Laravel Framework.",
485 | "homepage": "http://laravel.com",
486 | "keywords": [
487 | "framework",
488 | "laravel"
489 | ],
490 | "time": "2015-07-03 13:48:44"
491 | },
492 | {
493 | "name": "league/flysystem",
494 | "version": "1.0.4",
495 | "source": {
496 | "type": "git",
497 | "url": "https://github.com/thephpleague/flysystem.git",
498 | "reference": "56862959b45131ad33e5a7727a25db19f2cf090b"
499 | },
500 | "dist": {
501 | "type": "zip",
502 | "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/56862959b45131ad33e5a7727a25db19f2cf090b",
503 | "reference": "56862959b45131ad33e5a7727a25db19f2cf090b",
504 | "shasum": ""
505 | },
506 | "require": {
507 | "ext-mbstring": "*",
508 | "php": ">=5.4.0"
509 | },
510 | "require-dev": {
511 | "ext-fileinfo": "*",
512 | "league/phpunit-coverage-listener": "~1.1",
513 | "mockery/mockery": "~0.9",
514 | "phpspec/phpspec": "~2.0",
515 | "phpspec/prophecy-phpunit": "~1.0",
516 | "phpunit/phpunit": "~4.1",
517 | "predis/predis": "~1.0",
518 | "tedivm/stash": "~0.12.0"
519 | },
520 | "suggest": {
521 | "ext-fileinfo": "Required for MimeType",
522 | "league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2",
523 | "league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3",
524 | "league/flysystem-azure": "Allows you to use Windows Azure Blob storage",
525 | "league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching",
526 | "league/flysystem-copy": "Allows you to use Copy.com storage",
527 | "league/flysystem-dropbox": "Allows you to use Dropbox storage",
528 | "league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem",
529 | "league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files",
530 | "league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib",
531 | "league/flysystem-webdav": "Allows you to use WebDAV storage",
532 | "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter",
533 | "predis/predis": "Allows you to use Predis for caching"
534 | },
535 | "type": "library",
536 | "extra": {
537 | "branch-alias": {
538 | "dev-master": "1.1-dev"
539 | }
540 | },
541 | "autoload": {
542 | "psr-4": {
543 | "League\\Flysystem\\": "src/"
544 | }
545 | },
546 | "notification-url": "https://packagist.org/downloads/",
547 | "license": [
548 | "MIT"
549 | ],
550 | "authors": [
551 | {
552 | "name": "Frank de Jonge",
553 | "email": "info@frenky.net"
554 | }
555 | ],
556 | "description": "Many filesystems, one API.",
557 | "keywords": [
558 | "Cloud Files",
559 | "WebDAV",
560 | "aws",
561 | "cloud",
562 | "copy.com",
563 | "dropbox",
564 | "file systems",
565 | "files",
566 | "filesystem",
567 | "ftp",
568 | "rackspace",
569 | "remote",
570 | "s3",
571 | "sftp",
572 | "storage"
573 | ],
574 | "time": "2015-06-07 21:27:37"
575 | },
576 | {
577 | "name": "monolog/monolog",
578 | "version": "1.14.0",
579 | "source": {
580 | "type": "git",
581 | "url": "https://github.com/Seldaek/monolog.git",
582 | "reference": "b287fbbe1ca27847064beff2bad7fb6920bf08cc"
583 | },
584 | "dist": {
585 | "type": "zip",
586 | "url": "https://api.github.com/repos/Seldaek/monolog/zipball/b287fbbe1ca27847064beff2bad7fb6920bf08cc",
587 | "reference": "b287fbbe1ca27847064beff2bad7fb6920bf08cc",
588 | "shasum": ""
589 | },
590 | "require": {
591 | "php": ">=5.3.0",
592 | "psr/log": "~1.0"
593 | },
594 | "provide": {
595 | "psr/log-implementation": "1.0.0"
596 | },
597 | "require-dev": {
598 | "aws/aws-sdk-php": "^2.4.9",
599 | "doctrine/couchdb": "~1.0@dev",
600 | "graylog2/gelf-php": "~1.0",
601 | "php-console/php-console": "^3.1.3",
602 | "phpunit/phpunit": "~4.5",
603 | "phpunit/phpunit-mock-objects": "2.3.0",
604 | "raven/raven": "~0.8",
605 | "ruflin/elastica": ">=0.90 <3.0",
606 | "swiftmailer/swiftmailer": "~5.3",
607 | "videlalvaro/php-amqplib": "~2.4"
608 | },
609 | "suggest": {
610 | "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
611 | "doctrine/couchdb": "Allow sending log messages to a CouchDB server",
612 | "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
613 | "ext-mongo": "Allow sending log messages to a MongoDB server",
614 | "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
615 | "php-console/php-console": "Allow sending log messages to Google Chrome",
616 | "raven/raven": "Allow sending log messages to a Sentry server",
617 | "rollbar/rollbar": "Allow sending log messages to Rollbar",
618 | "ruflin/elastica": "Allow sending log messages to an Elastic Search server",
619 | "videlalvaro/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib"
620 | },
621 | "type": "library",
622 | "extra": {
623 | "branch-alias": {
624 | "dev-master": "1.14.x-dev"
625 | }
626 | },
627 | "autoload": {
628 | "psr-4": {
629 | "Monolog\\": "src/Monolog"
630 | }
631 | },
632 | "notification-url": "https://packagist.org/downloads/",
633 | "license": [
634 | "MIT"
635 | ],
636 | "authors": [
637 | {
638 | "name": "Jordi Boggiano",
639 | "email": "j.boggiano@seld.be",
640 | "homepage": "http://seld.be"
641 | }
642 | ],
643 | "description": "Sends your logs to files, sockets, inboxes, databases and various web services",
644 | "homepage": "http://github.com/Seldaek/monolog",
645 | "keywords": [
646 | "log",
647 | "logging",
648 | "psr-3"
649 | ],
650 | "time": "2015-06-19 13:29:54"
651 | },
652 | {
653 | "name": "mtdowling/cron-expression",
654 | "version": "v1.0.4",
655 | "source": {
656 | "type": "git",
657 | "url": "https://github.com/mtdowling/cron-expression.git",
658 | "reference": "fd92e883195e5dfa77720b1868cf084b08be4412"
659 | },
660 | "dist": {
661 | "type": "zip",
662 | "url": "https://api.github.com/repos/mtdowling/cron-expression/zipball/fd92e883195e5dfa77720b1868cf084b08be4412",
663 | "reference": "fd92e883195e5dfa77720b1868cf084b08be4412",
664 | "shasum": ""
665 | },
666 | "require": {
667 | "php": ">=5.3.2"
668 | },
669 | "require-dev": {
670 | "phpunit/phpunit": "4.*"
671 | },
672 | "type": "library",
673 | "autoload": {
674 | "psr-0": {
675 | "Cron": "src/"
676 | }
677 | },
678 | "notification-url": "https://packagist.org/downloads/",
679 | "license": [
680 | "MIT"
681 | ],
682 | "authors": [
683 | {
684 | "name": "Michael Dowling",
685 | "email": "mtdowling@gmail.com",
686 | "homepage": "https://github.com/mtdowling"
687 | }
688 | ],
689 | "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due",
690 | "keywords": [
691 | "cron",
692 | "schedule"
693 | ],
694 | "time": "2015-01-11 23:07:46"
695 | },
696 | {
697 | "name": "nesbot/carbon",
698 | "version": "1.20.0",
699 | "source": {
700 | "type": "git",
701 | "url": "https://github.com/briannesbitt/Carbon.git",
702 | "reference": "bfd3eaba109c9a2405c92174c8e17f20c2b9caf3"
703 | },
704 | "dist": {
705 | "type": "zip",
706 | "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/bfd3eaba109c9a2405c92174c8e17f20c2b9caf3",
707 | "reference": "bfd3eaba109c9a2405c92174c8e17f20c2b9caf3",
708 | "shasum": ""
709 | },
710 | "require": {
711 | "php": ">=5.3.0",
712 | "symfony/translation": "~2.6|~3.0"
713 | },
714 | "require-dev": {
715 | "phpunit/phpunit": "~4.0"
716 | },
717 | "type": "library",
718 | "autoload": {
719 | "psr-0": {
720 | "Carbon": "src"
721 | }
722 | },
723 | "notification-url": "https://packagist.org/downloads/",
724 | "license": [
725 | "MIT"
726 | ],
727 | "authors": [
728 | {
729 | "name": "Brian Nesbitt",
730 | "email": "brian@nesbot.com",
731 | "homepage": "http://nesbot.com"
732 | }
733 | ],
734 | "description": "A simple API extension for DateTime.",
735 | "homepage": "http://carbon.nesbot.com",
736 | "keywords": [
737 | "date",
738 | "datetime",
739 | "time"
740 | ],
741 | "time": "2015-06-25 04:19:39"
742 | },
743 | {
744 | "name": "nikic/php-parser",
745 | "version": "v1.3.0",
746 | "source": {
747 | "type": "git",
748 | "url": "https://github.com/nikic/PHP-Parser.git",
749 | "reference": "dff239267fd1befa1cd40430c9ed12591aa720ca"
750 | },
751 | "dist": {
752 | "type": "zip",
753 | "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/dff239267fd1befa1cd40430c9ed12591aa720ca",
754 | "reference": "dff239267fd1befa1cd40430c9ed12591aa720ca",
755 | "shasum": ""
756 | },
757 | "require": {
758 | "ext-tokenizer": "*",
759 | "php": ">=5.3"
760 | },
761 | "type": "library",
762 | "extra": {
763 | "branch-alias": {
764 | "dev-master": "1.3-dev"
765 | }
766 | },
767 | "autoload": {
768 | "files": [
769 | "lib/bootstrap.php"
770 | ]
771 | },
772 | "notification-url": "https://packagist.org/downloads/",
773 | "license": [
774 | "BSD-3-Clause"
775 | ],
776 | "authors": [
777 | {
778 | "name": "Nikita Popov"
779 | }
780 | ],
781 | "description": "A PHP parser written in PHP",
782 | "keywords": [
783 | "parser",
784 | "php"
785 | ],
786 | "time": "2015-05-02 15:40:40"
787 | },
788 | {
789 | "name": "psr/log",
790 | "version": "1.0.0",
791 | "source": {
792 | "type": "git",
793 | "url": "https://github.com/php-fig/log.git",
794 | "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b"
795 | },
796 | "dist": {
797 | "type": "zip",
798 | "url": "https://api.github.com/repos/php-fig/log/zipball/fe0936ee26643249e916849d48e3a51d5f5e278b",
799 | "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b",
800 | "shasum": ""
801 | },
802 | "type": "library",
803 | "autoload": {
804 | "psr-0": {
805 | "Psr\\Log\\": ""
806 | }
807 | },
808 | "notification-url": "https://packagist.org/downloads/",
809 | "license": [
810 | "MIT"
811 | ],
812 | "authors": [
813 | {
814 | "name": "PHP-FIG",
815 | "homepage": "http://www.php-fig.org/"
816 | }
817 | ],
818 | "description": "Common interface for logging libraries",
819 | "keywords": [
820 | "log",
821 | "psr",
822 | "psr-3"
823 | ],
824 | "time": "2012-12-21 11:40:51"
825 | },
826 | {
827 | "name": "psy/psysh",
828 | "version": "v0.4.4",
829 | "source": {
830 | "type": "git",
831 | "url": "https://github.com/bobthecow/psysh.git",
832 | "reference": "489816db71649bd95b416e3ed9062d40528ab0ac"
833 | },
834 | "dist": {
835 | "type": "zip",
836 | "url": "https://api.github.com/repos/bobthecow/psysh/zipball/489816db71649bd95b416e3ed9062d40528ab0ac",
837 | "reference": "489816db71649bd95b416e3ed9062d40528ab0ac",
838 | "shasum": ""
839 | },
840 | "require": {
841 | "dnoegel/php-xdg-base-dir": "0.1",
842 | "jakub-onderka/php-console-highlighter": "0.3.*",
843 | "nikic/php-parser": "~1.0",
844 | "php": ">=5.3.0",
845 | "symfony/console": "~2.3.10|~2.4.2|~2.5"
846 | },
847 | "require-dev": {
848 | "fabpot/php-cs-fixer": "~1.5",
849 | "phpunit/phpunit": "~3.7|~4.0",
850 | "squizlabs/php_codesniffer": "~2.0",
851 | "symfony/finder": "~2.1|~3.0"
852 | },
853 | "suggest": {
854 | "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)",
855 | "ext-pdo-sqlite": "The doc command requires SQLite to work.",
856 | "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.",
857 | "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history."
858 | },
859 | "bin": [
860 | "bin/psysh"
861 | ],
862 | "type": "library",
863 | "extra": {
864 | "branch-alias": {
865 | "dev-develop": "0.4.x-dev"
866 | }
867 | },
868 | "autoload": {
869 | "files": [
870 | "src/Psy/functions.php"
871 | ],
872 | "psr-0": {
873 | "Psy\\": "src/"
874 | }
875 | },
876 | "notification-url": "https://packagist.org/downloads/",
877 | "license": [
878 | "MIT"
879 | ],
880 | "authors": [
881 | {
882 | "name": "Justin Hileman",
883 | "email": "justin@justinhileman.info",
884 | "homepage": "http://justinhileman.com"
885 | }
886 | ],
887 | "description": "An interactive shell for modern PHP.",
888 | "homepage": "http://psysh.org",
889 | "keywords": [
890 | "REPL",
891 | "console",
892 | "interactive",
893 | "shell"
894 | ],
895 | "time": "2015-03-26 18:43:54"
896 | },
897 | {
898 | "name": "swiftmailer/swiftmailer",
899 | "version": "v5.4.1",
900 | "source": {
901 | "type": "git",
902 | "url": "https://github.com/swiftmailer/swiftmailer.git",
903 | "reference": "0697e6aa65c83edf97bb0f23d8763f94e3f11421"
904 | },
905 | "dist": {
906 | "type": "zip",
907 | "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/0697e6aa65c83edf97bb0f23d8763f94e3f11421",
908 | "reference": "0697e6aa65c83edf97bb0f23d8763f94e3f11421",
909 | "shasum": ""
910 | },
911 | "require": {
912 | "php": ">=5.3.3"
913 | },
914 | "require-dev": {
915 | "mockery/mockery": "~0.9.1,<0.9.4"
916 | },
917 | "type": "library",
918 | "extra": {
919 | "branch-alias": {
920 | "dev-master": "5.4-dev"
921 | }
922 | },
923 | "autoload": {
924 | "files": [
925 | "lib/swift_required.php"
926 | ]
927 | },
928 | "notification-url": "https://packagist.org/downloads/",
929 | "license": [
930 | "MIT"
931 | ],
932 | "authors": [
933 | {
934 | "name": "Chris Corbyn"
935 | },
936 | {
937 | "name": "Fabien Potencier",
938 | "email": "fabien@symfony.com"
939 | }
940 | ],
941 | "description": "Swiftmailer, free feature-rich PHP mailer",
942 | "homepage": "http://swiftmailer.org",
943 | "keywords": [
944 | "email",
945 | "mail",
946 | "mailer"
947 | ],
948 | "time": "2015-06-06 14:19:39"
949 | },
950 | {
951 | "name": "symfony/console",
952 | "version": "v2.7.1",
953 | "source": {
954 | "type": "git",
955 | "url": "https://github.com/symfony/Console.git",
956 | "reference": "564398bc1f33faf92fc2ec86859983d30eb81806"
957 | },
958 | "dist": {
959 | "type": "zip",
960 | "url": "https://api.github.com/repos/symfony/Console/zipball/564398bc1f33faf92fc2ec86859983d30eb81806",
961 | "reference": "564398bc1f33faf92fc2ec86859983d30eb81806",
962 | "shasum": ""
963 | },
964 | "require": {
965 | "php": ">=5.3.9"
966 | },
967 | "require-dev": {
968 | "psr/log": "~1.0",
969 | "symfony/event-dispatcher": "~2.1",
970 | "symfony/phpunit-bridge": "~2.7",
971 | "symfony/process": "~2.1"
972 | },
973 | "suggest": {
974 | "psr/log": "For using the console logger",
975 | "symfony/event-dispatcher": "",
976 | "symfony/process": ""
977 | },
978 | "type": "library",
979 | "extra": {
980 | "branch-alias": {
981 | "dev-master": "2.7-dev"
982 | }
983 | },
984 | "autoload": {
985 | "psr-4": {
986 | "Symfony\\Component\\Console\\": ""
987 | }
988 | },
989 | "notification-url": "https://packagist.org/downloads/",
990 | "license": [
991 | "MIT"
992 | ],
993 | "authors": [
994 | {
995 | "name": "Fabien Potencier",
996 | "email": "fabien@symfony.com"
997 | },
998 | {
999 | "name": "Symfony Community",
1000 | "homepage": "https://symfony.com/contributors"
1001 | }
1002 | ],
1003 | "description": "Symfony Console Component",
1004 | "homepage": "https://symfony.com",
1005 | "time": "2015-06-10 15:30:22"
1006 | },
1007 | {
1008 | "name": "symfony/css-selector",
1009 | "version": "v2.7.1",
1010 | "source": {
1011 | "type": "git",
1012 | "url": "https://github.com/symfony/CssSelector.git",
1013 | "reference": "0b5c07b516226b7dd32afbbc82fe547a469c5092"
1014 | },
1015 | "dist": {
1016 | "type": "zip",
1017 | "url": "https://api.github.com/repos/symfony/CssSelector/zipball/0b5c07b516226b7dd32afbbc82fe547a469c5092",
1018 | "reference": "0b5c07b516226b7dd32afbbc82fe547a469c5092",
1019 | "shasum": ""
1020 | },
1021 | "require": {
1022 | "php": ">=5.3.9"
1023 | },
1024 | "require-dev": {
1025 | "symfony/phpunit-bridge": "~2.7"
1026 | },
1027 | "type": "library",
1028 | "extra": {
1029 | "branch-alias": {
1030 | "dev-master": "2.7-dev"
1031 | }
1032 | },
1033 | "autoload": {
1034 | "psr-4": {
1035 | "Symfony\\Component\\CssSelector\\": ""
1036 | }
1037 | },
1038 | "notification-url": "https://packagist.org/downloads/",
1039 | "license": [
1040 | "MIT"
1041 | ],
1042 | "authors": [
1043 | {
1044 | "name": "Jean-François Simon",
1045 | "email": "jeanfrancois.simon@sensiolabs.com"
1046 | },
1047 | {
1048 | "name": "Fabien Potencier",
1049 | "email": "fabien@symfony.com"
1050 | },
1051 | {
1052 | "name": "Symfony Community",
1053 | "homepage": "https://symfony.com/contributors"
1054 | }
1055 | ],
1056 | "description": "Symfony CssSelector Component",
1057 | "homepage": "https://symfony.com",
1058 | "time": "2015-05-15 13:33:16"
1059 | },
1060 | {
1061 | "name": "symfony/debug",
1062 | "version": "v2.7.1",
1063 | "source": {
1064 | "type": "git",
1065 | "url": "https://github.com/symfony/Debug.git",
1066 | "reference": "075070230c5bbc65abde8241191655bbce0716e2"
1067 | },
1068 | "dist": {
1069 | "type": "zip",
1070 | "url": "https://api.github.com/repos/symfony/Debug/zipball/075070230c5bbc65abde8241191655bbce0716e2",
1071 | "reference": "075070230c5bbc65abde8241191655bbce0716e2",
1072 | "shasum": ""
1073 | },
1074 | "require": {
1075 | "php": ">=5.3.9",
1076 | "psr/log": "~1.0"
1077 | },
1078 | "conflict": {
1079 | "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2"
1080 | },
1081 | "require-dev": {
1082 | "symfony/class-loader": "~2.2",
1083 | "symfony/http-foundation": "~2.1",
1084 | "symfony/http-kernel": "~2.3.24|~2.5.9|~2.6,>=2.6.2",
1085 | "symfony/phpunit-bridge": "~2.7"
1086 | },
1087 | "suggest": {
1088 | "symfony/http-foundation": "",
1089 | "symfony/http-kernel": ""
1090 | },
1091 | "type": "library",
1092 | "extra": {
1093 | "branch-alias": {
1094 | "dev-master": "2.7-dev"
1095 | }
1096 | },
1097 | "autoload": {
1098 | "psr-4": {
1099 | "Symfony\\Component\\Debug\\": ""
1100 | }
1101 | },
1102 | "notification-url": "https://packagist.org/downloads/",
1103 | "license": [
1104 | "MIT"
1105 | ],
1106 | "authors": [
1107 | {
1108 | "name": "Fabien Potencier",
1109 | "email": "fabien@symfony.com"
1110 | },
1111 | {
1112 | "name": "Symfony Community",
1113 | "homepage": "https://symfony.com/contributors"
1114 | }
1115 | ],
1116 | "description": "Symfony Debug Component",
1117 | "homepage": "https://symfony.com",
1118 | "time": "2015-06-08 09:37:21"
1119 | },
1120 | {
1121 | "name": "symfony/dom-crawler",
1122 | "version": "v2.7.1",
1123 | "source": {
1124 | "type": "git",
1125 | "url": "https://github.com/symfony/DomCrawler.git",
1126 | "reference": "11d8eb8ccc1533f4c2d89a025f674894fda520b3"
1127 | },
1128 | "dist": {
1129 | "type": "zip",
1130 | "url": "https://api.github.com/repos/symfony/DomCrawler/zipball/11d8eb8ccc1533f4c2d89a025f674894fda520b3",
1131 | "reference": "11d8eb8ccc1533f4c2d89a025f674894fda520b3",
1132 | "shasum": ""
1133 | },
1134 | "require": {
1135 | "php": ">=5.3.9"
1136 | },
1137 | "require-dev": {
1138 | "symfony/css-selector": "~2.3",
1139 | "symfony/phpunit-bridge": "~2.7"
1140 | },
1141 | "suggest": {
1142 | "symfony/css-selector": ""
1143 | },
1144 | "type": "library",
1145 | "extra": {
1146 | "branch-alias": {
1147 | "dev-master": "2.7-dev"
1148 | }
1149 | },
1150 | "autoload": {
1151 | "psr-4": {
1152 | "Symfony\\Component\\DomCrawler\\": ""
1153 | }
1154 | },
1155 | "notification-url": "https://packagist.org/downloads/",
1156 | "license": [
1157 | "MIT"
1158 | ],
1159 | "authors": [
1160 | {
1161 | "name": "Fabien Potencier",
1162 | "email": "fabien@symfony.com"
1163 | },
1164 | {
1165 | "name": "Symfony Community",
1166 | "homepage": "https://symfony.com/contributors"
1167 | }
1168 | ],
1169 | "description": "Symfony DomCrawler Component",
1170 | "homepage": "https://symfony.com",
1171 | "time": "2015-05-22 14:54:25"
1172 | },
1173 | {
1174 | "name": "symfony/event-dispatcher",
1175 | "version": "v2.7.1",
1176 | "source": {
1177 | "type": "git",
1178 | "url": "https://github.com/symfony/EventDispatcher.git",
1179 | "reference": "be3c5ff8d503c46768aeb78ce6333051aa6f26d9"
1180 | },
1181 | "dist": {
1182 | "type": "zip",
1183 | "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/be3c5ff8d503c46768aeb78ce6333051aa6f26d9",
1184 | "reference": "be3c5ff8d503c46768aeb78ce6333051aa6f26d9",
1185 | "shasum": ""
1186 | },
1187 | "require": {
1188 | "php": ">=5.3.9"
1189 | },
1190 | "require-dev": {
1191 | "psr/log": "~1.0",
1192 | "symfony/config": "~2.0,>=2.0.5",
1193 | "symfony/dependency-injection": "~2.6",
1194 | "symfony/expression-language": "~2.6",
1195 | "symfony/phpunit-bridge": "~2.7",
1196 | "symfony/stopwatch": "~2.3"
1197 | },
1198 | "suggest": {
1199 | "symfony/dependency-injection": "",
1200 | "symfony/http-kernel": ""
1201 | },
1202 | "type": "library",
1203 | "extra": {
1204 | "branch-alias": {
1205 | "dev-master": "2.7-dev"
1206 | }
1207 | },
1208 | "autoload": {
1209 | "psr-4": {
1210 | "Symfony\\Component\\EventDispatcher\\": ""
1211 | }
1212 | },
1213 | "notification-url": "https://packagist.org/downloads/",
1214 | "license": [
1215 | "MIT"
1216 | ],
1217 | "authors": [
1218 | {
1219 | "name": "Fabien Potencier",
1220 | "email": "fabien@symfony.com"
1221 | },
1222 | {
1223 | "name": "Symfony Community",
1224 | "homepage": "https://symfony.com/contributors"
1225 | }
1226 | ],
1227 | "description": "Symfony EventDispatcher Component",
1228 | "homepage": "https://symfony.com",
1229 | "time": "2015-06-08 09:37:21"
1230 | },
1231 | {
1232 | "name": "symfony/finder",
1233 | "version": "v2.7.1",
1234 | "source": {
1235 | "type": "git",
1236 | "url": "https://github.com/symfony/Finder.git",
1237 | "reference": "c13a40d638aeede1e8400f8c956c7f9246c05f75"
1238 | },
1239 | "dist": {
1240 | "type": "zip",
1241 | "url": "https://api.github.com/repos/symfony/Finder/zipball/c13a40d638aeede1e8400f8c956c7f9246c05f75",
1242 | "reference": "c13a40d638aeede1e8400f8c956c7f9246c05f75",
1243 | "shasum": ""
1244 | },
1245 | "require": {
1246 | "php": ">=5.3.9"
1247 | },
1248 | "require-dev": {
1249 | "symfony/phpunit-bridge": "~2.7"
1250 | },
1251 | "type": "library",
1252 | "extra": {
1253 | "branch-alias": {
1254 | "dev-master": "2.7-dev"
1255 | }
1256 | },
1257 | "autoload": {
1258 | "psr-4": {
1259 | "Symfony\\Component\\Finder\\": ""
1260 | }
1261 | },
1262 | "notification-url": "https://packagist.org/downloads/",
1263 | "license": [
1264 | "MIT"
1265 | ],
1266 | "authors": [
1267 | {
1268 | "name": "Fabien Potencier",
1269 | "email": "fabien@symfony.com"
1270 | },
1271 | {
1272 | "name": "Symfony Community",
1273 | "homepage": "https://symfony.com/contributors"
1274 | }
1275 | ],
1276 | "description": "Symfony Finder Component",
1277 | "homepage": "https://symfony.com",
1278 | "time": "2015-06-04 20:11:48"
1279 | },
1280 | {
1281 | "name": "symfony/http-foundation",
1282 | "version": "v2.7.1",
1283 | "source": {
1284 | "type": "git",
1285 | "url": "https://github.com/symfony/HttpFoundation.git",
1286 | "reference": "4f363c426b0ced57e3d14460022feb63937980ff"
1287 | },
1288 | "dist": {
1289 | "type": "zip",
1290 | "url": "https://api.github.com/repos/symfony/HttpFoundation/zipball/4f363c426b0ced57e3d14460022feb63937980ff",
1291 | "reference": "4f363c426b0ced57e3d14460022feb63937980ff",
1292 | "shasum": ""
1293 | },
1294 | "require": {
1295 | "php": ">=5.3.9"
1296 | },
1297 | "require-dev": {
1298 | "symfony/expression-language": "~2.4",
1299 | "symfony/phpunit-bridge": "~2.7"
1300 | },
1301 | "type": "library",
1302 | "extra": {
1303 | "branch-alias": {
1304 | "dev-master": "2.7-dev"
1305 | }
1306 | },
1307 | "autoload": {
1308 | "psr-4": {
1309 | "Symfony\\Component\\HttpFoundation\\": ""
1310 | },
1311 | "classmap": [
1312 | "Resources/stubs"
1313 | ]
1314 | },
1315 | "notification-url": "https://packagist.org/downloads/",
1316 | "license": [
1317 | "MIT"
1318 | ],
1319 | "authors": [
1320 | {
1321 | "name": "Fabien Potencier",
1322 | "email": "fabien@symfony.com"
1323 | },
1324 | {
1325 | "name": "Symfony Community",
1326 | "homepage": "https://symfony.com/contributors"
1327 | }
1328 | ],
1329 | "description": "Symfony HttpFoundation Component",
1330 | "homepage": "https://symfony.com",
1331 | "time": "2015-06-10 15:30:22"
1332 | },
1333 | {
1334 | "name": "symfony/http-kernel",
1335 | "version": "v2.7.1",
1336 | "source": {
1337 | "type": "git",
1338 | "url": "https://github.com/symfony/HttpKernel.git",
1339 | "reference": "208101c7a11e31933183bd2a380486e528c74302"
1340 | },
1341 | "dist": {
1342 | "type": "zip",
1343 | "url": "https://api.github.com/repos/symfony/HttpKernel/zipball/208101c7a11e31933183bd2a380486e528c74302",
1344 | "reference": "208101c7a11e31933183bd2a380486e528c74302",
1345 | "shasum": ""
1346 | },
1347 | "require": {
1348 | "php": ">=5.3.9",
1349 | "psr/log": "~1.0",
1350 | "symfony/debug": "~2.6,>=2.6.2",
1351 | "symfony/event-dispatcher": "~2.5.9|~2.6,>=2.6.2",
1352 | "symfony/http-foundation": "~2.5,>=2.5.4"
1353 | },
1354 | "conflict": {
1355 | "symfony/config": "<2.7"
1356 | },
1357 | "require-dev": {
1358 | "symfony/browser-kit": "~2.3",
1359 | "symfony/class-loader": "~2.1",
1360 | "symfony/config": "~2.7",
1361 | "symfony/console": "~2.3",
1362 | "symfony/css-selector": "~2.0,>=2.0.5",
1363 | "symfony/dependency-injection": "~2.2",
1364 | "symfony/dom-crawler": "~2.0,>=2.0.5",
1365 | "symfony/expression-language": "~2.4",
1366 | "symfony/finder": "~2.0,>=2.0.5",
1367 | "symfony/phpunit-bridge": "~2.7",
1368 | "symfony/process": "~2.0,>=2.0.5",
1369 | "symfony/routing": "~2.2",
1370 | "symfony/stopwatch": "~2.3",
1371 | "symfony/templating": "~2.2",
1372 | "symfony/translation": "~2.0,>=2.0.5",
1373 | "symfony/var-dumper": "~2.6"
1374 | },
1375 | "suggest": {
1376 | "symfony/browser-kit": "",
1377 | "symfony/class-loader": "",
1378 | "symfony/config": "",
1379 | "symfony/console": "",
1380 | "symfony/dependency-injection": "",
1381 | "symfony/finder": "",
1382 | "symfony/var-dumper": ""
1383 | },
1384 | "type": "library",
1385 | "extra": {
1386 | "branch-alias": {
1387 | "dev-master": "2.7-dev"
1388 | }
1389 | },
1390 | "autoload": {
1391 | "psr-4": {
1392 | "Symfony\\Component\\HttpKernel\\": ""
1393 | }
1394 | },
1395 | "notification-url": "https://packagist.org/downloads/",
1396 | "license": [
1397 | "MIT"
1398 | ],
1399 | "authors": [
1400 | {
1401 | "name": "Fabien Potencier",
1402 | "email": "fabien@symfony.com"
1403 | },
1404 | {
1405 | "name": "Symfony Community",
1406 | "homepage": "https://symfony.com/contributors"
1407 | }
1408 | ],
1409 | "description": "Symfony HttpKernel Component",
1410 | "homepage": "https://symfony.com",
1411 | "time": "2015-06-11 21:15:28"
1412 | },
1413 | {
1414 | "name": "symfony/process",
1415 | "version": "v2.7.1",
1416 | "source": {
1417 | "type": "git",
1418 | "url": "https://github.com/symfony/Process.git",
1419 | "reference": "552d8efdc80980cbcca50b28d626ac8e36e3cdd1"
1420 | },
1421 | "dist": {
1422 | "type": "zip",
1423 | "url": "https://api.github.com/repos/symfony/Process/zipball/552d8efdc80980cbcca50b28d626ac8e36e3cdd1",
1424 | "reference": "552d8efdc80980cbcca50b28d626ac8e36e3cdd1",
1425 | "shasum": ""
1426 | },
1427 | "require": {
1428 | "php": ">=5.3.9"
1429 | },
1430 | "require-dev": {
1431 | "symfony/phpunit-bridge": "~2.7"
1432 | },
1433 | "type": "library",
1434 | "extra": {
1435 | "branch-alias": {
1436 | "dev-master": "2.7-dev"
1437 | }
1438 | },
1439 | "autoload": {
1440 | "psr-4": {
1441 | "Symfony\\Component\\Process\\": ""
1442 | }
1443 | },
1444 | "notification-url": "https://packagist.org/downloads/",
1445 | "license": [
1446 | "MIT"
1447 | ],
1448 | "authors": [
1449 | {
1450 | "name": "Fabien Potencier",
1451 | "email": "fabien@symfony.com"
1452 | },
1453 | {
1454 | "name": "Symfony Community",
1455 | "homepage": "https://symfony.com/contributors"
1456 | }
1457 | ],
1458 | "description": "Symfony Process Component",
1459 | "homepage": "https://symfony.com",
1460 | "time": "2015-06-08 09:37:21"
1461 | },
1462 | {
1463 | "name": "symfony/routing",
1464 | "version": "v2.7.1",
1465 | "source": {
1466 | "type": "git",
1467 | "url": "https://github.com/symfony/Routing.git",
1468 | "reference": "5581be29185b8fb802398904555f70da62f6d50d"
1469 | },
1470 | "dist": {
1471 | "type": "zip",
1472 | "url": "https://api.github.com/repos/symfony/Routing/zipball/5581be29185b8fb802398904555f70da62f6d50d",
1473 | "reference": "5581be29185b8fb802398904555f70da62f6d50d",
1474 | "shasum": ""
1475 | },
1476 | "require": {
1477 | "php": ">=5.3.9"
1478 | },
1479 | "conflict": {
1480 | "symfony/config": "<2.7"
1481 | },
1482 | "require-dev": {
1483 | "doctrine/annotations": "~1.0",
1484 | "doctrine/common": "~2.2",
1485 | "psr/log": "~1.0",
1486 | "symfony/config": "~2.7",
1487 | "symfony/expression-language": "~2.4",
1488 | "symfony/http-foundation": "~2.3",
1489 | "symfony/phpunit-bridge": "~2.7",
1490 | "symfony/yaml": "~2.0,>=2.0.5"
1491 | },
1492 | "suggest": {
1493 | "doctrine/annotations": "For using the annotation loader",
1494 | "symfony/config": "For using the all-in-one router or any loader",
1495 | "symfony/expression-language": "For using expression matching",
1496 | "symfony/yaml": "For using the YAML loader"
1497 | },
1498 | "type": "library",
1499 | "extra": {
1500 | "branch-alias": {
1501 | "dev-master": "2.7-dev"
1502 | }
1503 | },
1504 | "autoload": {
1505 | "psr-4": {
1506 | "Symfony\\Component\\Routing\\": ""
1507 | }
1508 | },
1509 | "notification-url": "https://packagist.org/downloads/",
1510 | "license": [
1511 | "MIT"
1512 | ],
1513 | "authors": [
1514 | {
1515 | "name": "Fabien Potencier",
1516 | "email": "fabien@symfony.com"
1517 | },
1518 | {
1519 | "name": "Symfony Community",
1520 | "homepage": "https://symfony.com/contributors"
1521 | }
1522 | ],
1523 | "description": "Symfony Routing Component",
1524 | "homepage": "https://symfony.com",
1525 | "keywords": [
1526 | "router",
1527 | "routing",
1528 | "uri",
1529 | "url"
1530 | ],
1531 | "time": "2015-06-11 17:20:40"
1532 | },
1533 | {
1534 | "name": "symfony/translation",
1535 | "version": "v2.7.1",
1536 | "source": {
1537 | "type": "git",
1538 | "url": "https://github.com/symfony/Translation.git",
1539 | "reference": "8349a2b0d11bd0311df9e8914408080912983a0b"
1540 | },
1541 | "dist": {
1542 | "type": "zip",
1543 | "url": "https://api.github.com/repos/symfony/Translation/zipball/8349a2b0d11bd0311df9e8914408080912983a0b",
1544 | "reference": "8349a2b0d11bd0311df9e8914408080912983a0b",
1545 | "shasum": ""
1546 | },
1547 | "require": {
1548 | "php": ">=5.3.9"
1549 | },
1550 | "conflict": {
1551 | "symfony/config": "<2.7"
1552 | },
1553 | "require-dev": {
1554 | "psr/log": "~1.0",
1555 | "symfony/config": "~2.7",
1556 | "symfony/intl": "~2.3",
1557 | "symfony/phpunit-bridge": "~2.7",
1558 | "symfony/yaml": "~2.2"
1559 | },
1560 | "suggest": {
1561 | "psr/log": "To use logging capability in translator",
1562 | "symfony/config": "",
1563 | "symfony/yaml": ""
1564 | },
1565 | "type": "library",
1566 | "extra": {
1567 | "branch-alias": {
1568 | "dev-master": "2.7-dev"
1569 | }
1570 | },
1571 | "autoload": {
1572 | "psr-4": {
1573 | "Symfony\\Component\\Translation\\": ""
1574 | }
1575 | },
1576 | "notification-url": "https://packagist.org/downloads/",
1577 | "license": [
1578 | "MIT"
1579 | ],
1580 | "authors": [
1581 | {
1582 | "name": "Fabien Potencier",
1583 | "email": "fabien@symfony.com"
1584 | },
1585 | {
1586 | "name": "Symfony Community",
1587 | "homepage": "https://symfony.com/contributors"
1588 | }
1589 | ],
1590 | "description": "Symfony Translation Component",
1591 | "homepage": "https://symfony.com",
1592 | "time": "2015-06-11 17:26:34"
1593 | },
1594 | {
1595 | "name": "symfony/var-dumper",
1596 | "version": "v2.7.1",
1597 | "source": {
1598 | "type": "git",
1599 | "url": "https://github.com/symfony/var-dumper.git",
1600 | "reference": "c509921f260353bf07b257f84017777c8b0aa4bc"
1601 | },
1602 | "dist": {
1603 | "type": "zip",
1604 | "url": "https://api.github.com/repos/symfony/var-dumper/zipball/c509921f260353bf07b257f84017777c8b0aa4bc",
1605 | "reference": "c509921f260353bf07b257f84017777c8b0aa4bc",
1606 | "shasum": ""
1607 | },
1608 | "require": {
1609 | "php": ">=5.3.9"
1610 | },
1611 | "require-dev": {
1612 | "symfony/phpunit-bridge": "~2.7"
1613 | },
1614 | "suggest": {
1615 | "ext-symfony_debug": ""
1616 | },
1617 | "type": "library",
1618 | "extra": {
1619 | "branch-alias": {
1620 | "dev-master": "2.7-dev"
1621 | }
1622 | },
1623 | "autoload": {
1624 | "files": [
1625 | "Resources/functions/dump.php"
1626 | ],
1627 | "psr-4": {
1628 | "Symfony\\Component\\VarDumper\\": ""
1629 | }
1630 | },
1631 | "notification-url": "https://packagist.org/downloads/",
1632 | "license": [
1633 | "MIT"
1634 | ],
1635 | "authors": [
1636 | {
1637 | "name": "Nicolas Grekas",
1638 | "email": "p@tchwork.com"
1639 | },
1640 | {
1641 | "name": "Symfony Community",
1642 | "homepage": "https://symfony.com/contributors"
1643 | }
1644 | ],
1645 | "description": "Symfony mechanism for exploring and dumping PHP variables",
1646 | "homepage": "https://symfony.com",
1647 | "keywords": [
1648 | "debug",
1649 | "dump"
1650 | ],
1651 | "time": "2015-06-08 09:37:21"
1652 | },
1653 | {
1654 | "name": "vlucas/phpdotenv",
1655 | "version": "v1.1.1",
1656 | "source": {
1657 | "type": "git",
1658 | "url": "https://github.com/vlucas/phpdotenv.git",
1659 | "reference": "0cac554ce06277e33ddf9f0b7ade4b8bbf2af3fa"
1660 | },
1661 | "dist": {
1662 | "type": "zip",
1663 | "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/0cac554ce06277e33ddf9f0b7ade4b8bbf2af3fa",
1664 | "reference": "0cac554ce06277e33ddf9f0b7ade4b8bbf2af3fa",
1665 | "shasum": ""
1666 | },
1667 | "require": {
1668 | "php": ">=5.3.2"
1669 | },
1670 | "require-dev": {
1671 | "phpunit/phpunit": "~4.0"
1672 | },
1673 | "type": "library",
1674 | "autoload": {
1675 | "psr-0": {
1676 | "Dotenv": "src/"
1677 | }
1678 | },
1679 | "notification-url": "https://packagist.org/downloads/",
1680 | "license": [
1681 | "BSD"
1682 | ],
1683 | "authors": [
1684 | {
1685 | "name": "Vance Lucas",
1686 | "email": "vance@vancelucas.com",
1687 | "homepage": "http://www.vancelucas.com"
1688 | }
1689 | ],
1690 | "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.",
1691 | "homepage": "http://github.com/vlucas/phpdotenv",
1692 | "keywords": [
1693 | "dotenv",
1694 | "env",
1695 | "environment"
1696 | ],
1697 | "time": "2015-05-30 15:59:26"
1698 | }
1699 | ],
1700 | "packages-dev": [
1701 | {
1702 | "name": "doctrine/instantiator",
1703 | "version": "1.0.5",
1704 | "source": {
1705 | "type": "git",
1706 | "url": "https://github.com/doctrine/instantiator.git",
1707 | "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d"
1708 | },
1709 | "dist": {
1710 | "type": "zip",
1711 | "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d",
1712 | "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d",
1713 | "shasum": ""
1714 | },
1715 | "require": {
1716 | "php": ">=5.3,<8.0-DEV"
1717 | },
1718 | "require-dev": {
1719 | "athletic/athletic": "~0.1.8",
1720 | "ext-pdo": "*",
1721 | "ext-phar": "*",
1722 | "phpunit/phpunit": "~4.0",
1723 | "squizlabs/php_codesniffer": "~2.0"
1724 | },
1725 | "type": "library",
1726 | "extra": {
1727 | "branch-alias": {
1728 | "dev-master": "1.0.x-dev"
1729 | }
1730 | },
1731 | "autoload": {
1732 | "psr-4": {
1733 | "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
1734 | }
1735 | },
1736 | "notification-url": "https://packagist.org/downloads/",
1737 | "license": [
1738 | "MIT"
1739 | ],
1740 | "authors": [
1741 | {
1742 | "name": "Marco Pivetta",
1743 | "email": "ocramius@gmail.com",
1744 | "homepage": "http://ocramius.github.com/"
1745 | }
1746 | ],
1747 | "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
1748 | "homepage": "https://github.com/doctrine/instantiator",
1749 | "keywords": [
1750 | "constructor",
1751 | "instantiate"
1752 | ],
1753 | "time": "2015-06-14 21:17:01"
1754 | },
1755 | {
1756 | "name": "fzaninotto/faker",
1757 | "version": "v1.5.0",
1758 | "source": {
1759 | "type": "git",
1760 | "url": "https://github.com/fzaninotto/Faker.git",
1761 | "reference": "d0190b156bcca848d401fb80f31f504f37141c8d"
1762 | },
1763 | "dist": {
1764 | "type": "zip",
1765 | "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/d0190b156bcca848d401fb80f31f504f37141c8d",
1766 | "reference": "d0190b156bcca848d401fb80f31f504f37141c8d",
1767 | "shasum": ""
1768 | },
1769 | "require": {
1770 | "php": ">=5.3.3"
1771 | },
1772 | "require-dev": {
1773 | "phpunit/phpunit": "~4.0",
1774 | "squizlabs/php_codesniffer": "~1.5"
1775 | },
1776 | "suggest": {
1777 | "ext-intl": "*"
1778 | },
1779 | "type": "library",
1780 | "extra": {
1781 | "branch-alias": {
1782 | "dev-master": "1.5.x-dev"
1783 | }
1784 | },
1785 | "autoload": {
1786 | "psr-4": {
1787 | "Faker\\": "src/Faker/"
1788 | }
1789 | },
1790 | "notification-url": "https://packagist.org/downloads/",
1791 | "license": [
1792 | "MIT"
1793 | ],
1794 | "authors": [
1795 | {
1796 | "name": "François Zaninotto"
1797 | }
1798 | ],
1799 | "description": "Faker is a PHP library that generates fake data for you.",
1800 | "keywords": [
1801 | "data",
1802 | "faker",
1803 | "fixtures"
1804 | ],
1805 | "time": "2015-05-29 06:29:14"
1806 | },
1807 | {
1808 | "name": "hamcrest/hamcrest-php",
1809 | "version": "v1.2.2",
1810 | "source": {
1811 | "type": "git",
1812 | "url": "https://github.com/hamcrest/hamcrest-php.git",
1813 | "reference": "b37020aa976fa52d3de9aa904aa2522dc518f79c"
1814 | },
1815 | "dist": {
1816 | "type": "zip",
1817 | "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/b37020aa976fa52d3de9aa904aa2522dc518f79c",
1818 | "reference": "b37020aa976fa52d3de9aa904aa2522dc518f79c",
1819 | "shasum": ""
1820 | },
1821 | "require": {
1822 | "php": ">=5.3.2"
1823 | },
1824 | "replace": {
1825 | "cordoval/hamcrest-php": "*",
1826 | "davedevelopment/hamcrest-php": "*",
1827 | "kodova/hamcrest-php": "*"
1828 | },
1829 | "require-dev": {
1830 | "phpunit/php-file-iterator": "1.3.3",
1831 | "satooshi/php-coveralls": "dev-master"
1832 | },
1833 | "type": "library",
1834 | "autoload": {
1835 | "classmap": [
1836 | "hamcrest"
1837 | ],
1838 | "files": [
1839 | "hamcrest/Hamcrest.php"
1840 | ]
1841 | },
1842 | "notification-url": "https://packagist.org/downloads/",
1843 | "license": [
1844 | "BSD"
1845 | ],
1846 | "description": "This is the PHP port of Hamcrest Matchers",
1847 | "keywords": [
1848 | "test"
1849 | ],
1850 | "time": "2015-05-11 14:41:42"
1851 | },
1852 | {
1853 | "name": "mockery/mockery",
1854 | "version": "0.9.4",
1855 | "source": {
1856 | "type": "git",
1857 | "url": "https://github.com/padraic/mockery.git",
1858 | "reference": "70bba85e4aabc9449626651f48b9018ede04f86b"
1859 | },
1860 | "dist": {
1861 | "type": "zip",
1862 | "url": "https://api.github.com/repos/padraic/mockery/zipball/70bba85e4aabc9449626651f48b9018ede04f86b",
1863 | "reference": "70bba85e4aabc9449626651f48b9018ede04f86b",
1864 | "shasum": ""
1865 | },
1866 | "require": {
1867 | "hamcrest/hamcrest-php": "~1.1",
1868 | "lib-pcre": ">=7.0",
1869 | "php": ">=5.3.2"
1870 | },
1871 | "require-dev": {
1872 | "phpunit/phpunit": "~4.0"
1873 | },
1874 | "type": "library",
1875 | "extra": {
1876 | "branch-alias": {
1877 | "dev-master": "0.9.x-dev"
1878 | }
1879 | },
1880 | "autoload": {
1881 | "psr-0": {
1882 | "Mockery": "library/"
1883 | }
1884 | },
1885 | "notification-url": "https://packagist.org/downloads/",
1886 | "license": [
1887 | "BSD-3-Clause"
1888 | ],
1889 | "authors": [
1890 | {
1891 | "name": "Pádraic Brady",
1892 | "email": "padraic.brady@gmail.com",
1893 | "homepage": "http://blog.astrumfutura.com"
1894 | },
1895 | {
1896 | "name": "Dave Marshall",
1897 | "email": "dave.marshall@atstsolutions.co.uk",
1898 | "homepage": "http://davedevelopment.co.uk"
1899 | }
1900 | ],
1901 | "description": "Mockery is a simple yet flexible PHP mock object framework for use in unit testing with PHPUnit, PHPSpec or any other testing framework. Its core goal is to offer a test double framework with a succinct API capable of clearly defining all possible object operations and interactions using a human readable Domain Specific Language (DSL). Designed as a drop in alternative to PHPUnit's phpunit-mock-objects library, Mockery is easy to integrate with PHPUnit and can operate alongside phpunit-mock-objects without the World ending.",
1902 | "homepage": "http://github.com/padraic/mockery",
1903 | "keywords": [
1904 | "BDD",
1905 | "TDD",
1906 | "library",
1907 | "mock",
1908 | "mock objects",
1909 | "mockery",
1910 | "stub",
1911 | "test",
1912 | "test double",
1913 | "testing"
1914 | ],
1915 | "time": "2015-04-02 19:54:00"
1916 | },
1917 | {
1918 | "name": "phpdocumentor/reflection-docblock",
1919 | "version": "2.0.4",
1920 | "source": {
1921 | "type": "git",
1922 | "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
1923 | "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8"
1924 | },
1925 | "dist": {
1926 | "type": "zip",
1927 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/d68dbdc53dc358a816f00b300704702b2eaff7b8",
1928 | "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8",
1929 | "shasum": ""
1930 | },
1931 | "require": {
1932 | "php": ">=5.3.3"
1933 | },
1934 | "require-dev": {
1935 | "phpunit/phpunit": "~4.0"
1936 | },
1937 | "suggest": {
1938 | "dflydev/markdown": "~1.0",
1939 | "erusev/parsedown": "~1.0"
1940 | },
1941 | "type": "library",
1942 | "extra": {
1943 | "branch-alias": {
1944 | "dev-master": "2.0.x-dev"
1945 | }
1946 | },
1947 | "autoload": {
1948 | "psr-0": {
1949 | "phpDocumentor": [
1950 | "src/"
1951 | ]
1952 | }
1953 | },
1954 | "notification-url": "https://packagist.org/downloads/",
1955 | "license": [
1956 | "MIT"
1957 | ],
1958 | "authors": [
1959 | {
1960 | "name": "Mike van Riel",
1961 | "email": "mike.vanriel@naenius.com"
1962 | }
1963 | ],
1964 | "time": "2015-02-03 12:10:50"
1965 | },
1966 | {
1967 | "name": "phpspec/php-diff",
1968 | "version": "v1.0.2",
1969 | "source": {
1970 | "type": "git",
1971 | "url": "https://github.com/phpspec/php-diff.git",
1972 | "reference": "30e103d19519fe678ae64a60d77884ef3d71b28a"
1973 | },
1974 | "dist": {
1975 | "type": "zip",
1976 | "url": "https://api.github.com/repos/phpspec/php-diff/zipball/30e103d19519fe678ae64a60d77884ef3d71b28a",
1977 | "reference": "30e103d19519fe678ae64a60d77884ef3d71b28a",
1978 | "shasum": ""
1979 | },
1980 | "type": "library",
1981 | "autoload": {
1982 | "psr-0": {
1983 | "Diff": "lib/"
1984 | }
1985 | },
1986 | "notification-url": "https://packagist.org/downloads/",
1987 | "license": [
1988 | "BSD-3-Clause"
1989 | ],
1990 | "authors": [
1991 | {
1992 | "name": "Chris Boulton",
1993 | "homepage": "http://github.com/chrisboulton",
1994 | "role": "Original developer"
1995 | }
1996 | ],
1997 | "description": "A comprehensive library for generating differences between two hashable objects (strings or arrays).",
1998 | "time": "2013-11-01 13:02:21"
1999 | },
2000 | {
2001 | "name": "phpspec/phpspec",
2002 | "version": "2.2.1",
2003 | "source": {
2004 | "type": "git",
2005 | "url": "https://github.com/phpspec/phpspec.git",
2006 | "reference": "e9a40577323e67f1de2e214abf32976a0352d8f8"
2007 | },
2008 | "dist": {
2009 | "type": "zip",
2010 | "url": "https://api.github.com/repos/phpspec/phpspec/zipball/e9a40577323e67f1de2e214abf32976a0352d8f8",
2011 | "reference": "e9a40577323e67f1de2e214abf32976a0352d8f8",
2012 | "shasum": ""
2013 | },
2014 | "require": {
2015 | "doctrine/instantiator": "^1.0.1",
2016 | "php": ">=5.3.3",
2017 | "phpspec/php-diff": "~1.0.0",
2018 | "phpspec/prophecy": "~1.4",
2019 | "sebastian/exporter": "~1.0",
2020 | "symfony/console": "~2.3",
2021 | "symfony/event-dispatcher": "~2.1",
2022 | "symfony/finder": "~2.1",
2023 | "symfony/process": "~2.1",
2024 | "symfony/yaml": "~2.1"
2025 | },
2026 | "require-dev": {
2027 | "behat/behat": "^3.0.11",
2028 | "bossa/phpspec2-expect": "~1.0",
2029 | "phpunit/phpunit": "~4.4",
2030 | "symfony/filesystem": "~2.1",
2031 | "symfony/process": "~2.1"
2032 | },
2033 | "suggest": {
2034 | "phpspec/nyan-formatters": "~1.0 – Adds Nyan formatters"
2035 | },
2036 | "bin": [
2037 | "bin/phpspec"
2038 | ],
2039 | "type": "library",
2040 | "extra": {
2041 | "branch-alias": {
2042 | "dev-master": "2.2.x-dev"
2043 | }
2044 | },
2045 | "autoload": {
2046 | "psr-0": {
2047 | "PhpSpec": "src/"
2048 | }
2049 | },
2050 | "notification-url": "https://packagist.org/downloads/",
2051 | "license": [
2052 | "MIT"
2053 | ],
2054 | "authors": [
2055 | {
2056 | "name": "Konstantin Kudryashov",
2057 | "email": "ever.zet@gmail.com",
2058 | "homepage": "http://everzet.com"
2059 | },
2060 | {
2061 | "name": "Marcello Duarte",
2062 | "homepage": "http://marcelloduarte.net/"
2063 | }
2064 | ],
2065 | "description": "Specification-oriented BDD framework for PHP 5.3+",
2066 | "homepage": "http://phpspec.net/",
2067 | "keywords": [
2068 | "BDD",
2069 | "SpecBDD",
2070 | "TDD",
2071 | "spec",
2072 | "specification",
2073 | "testing",
2074 | "tests"
2075 | ],
2076 | "time": "2015-05-30 15:21:40"
2077 | },
2078 | {
2079 | "name": "phpspec/prophecy",
2080 | "version": "v1.4.1",
2081 | "source": {
2082 | "type": "git",
2083 | "url": "https://github.com/phpspec/prophecy.git",
2084 | "reference": "3132b1f44c7bf2ec4c7eb2d3cb78fdeca760d373"
2085 | },
2086 | "dist": {
2087 | "type": "zip",
2088 | "url": "https://api.github.com/repos/phpspec/prophecy/zipball/3132b1f44c7bf2ec4c7eb2d3cb78fdeca760d373",
2089 | "reference": "3132b1f44c7bf2ec4c7eb2d3cb78fdeca760d373",
2090 | "shasum": ""
2091 | },
2092 | "require": {
2093 | "doctrine/instantiator": "^1.0.2",
2094 | "phpdocumentor/reflection-docblock": "~2.0",
2095 | "sebastian/comparator": "~1.1"
2096 | },
2097 | "require-dev": {
2098 | "phpspec/phpspec": "~2.0"
2099 | },
2100 | "type": "library",
2101 | "extra": {
2102 | "branch-alias": {
2103 | "dev-master": "1.4.x-dev"
2104 | }
2105 | },
2106 | "autoload": {
2107 | "psr-0": {
2108 | "Prophecy\\": "src/"
2109 | }
2110 | },
2111 | "notification-url": "https://packagist.org/downloads/",
2112 | "license": [
2113 | "MIT"
2114 | ],
2115 | "authors": [
2116 | {
2117 | "name": "Konstantin Kudryashov",
2118 | "email": "ever.zet@gmail.com",
2119 | "homepage": "http://everzet.com"
2120 | },
2121 | {
2122 | "name": "Marcello Duarte",
2123 | "email": "marcello.duarte@gmail.com"
2124 | }
2125 | ],
2126 | "description": "Highly opinionated mocking framework for PHP 5.3+",
2127 | "homepage": "https://github.com/phpspec/prophecy",
2128 | "keywords": [
2129 | "Double",
2130 | "Dummy",
2131 | "fake",
2132 | "mock",
2133 | "spy",
2134 | "stub"
2135 | ],
2136 | "time": "2015-04-27 22:15:08"
2137 | },
2138 | {
2139 | "name": "phpunit/php-code-coverage",
2140 | "version": "2.1.7",
2141 | "source": {
2142 | "type": "git",
2143 | "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
2144 | "reference": "07e27765596d72c378a6103e80da5d84e802f1e4"
2145 | },
2146 | "dist": {
2147 | "type": "zip",
2148 | "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/07e27765596d72c378a6103e80da5d84e802f1e4",
2149 | "reference": "07e27765596d72c378a6103e80da5d84e802f1e4",
2150 | "shasum": ""
2151 | },
2152 | "require": {
2153 | "php": ">=5.3.3",
2154 | "phpunit/php-file-iterator": "~1.3",
2155 | "phpunit/php-text-template": "~1.2",
2156 | "phpunit/php-token-stream": "~1.3",
2157 | "sebastian/environment": "~1.0",
2158 | "sebastian/version": "~1.0"
2159 | },
2160 | "require-dev": {
2161 | "ext-xdebug": ">=2.1.4",
2162 | "phpunit/phpunit": "~4"
2163 | },
2164 | "suggest": {
2165 | "ext-dom": "*",
2166 | "ext-xdebug": ">=2.2.1",
2167 | "ext-xmlwriter": "*"
2168 | },
2169 | "type": "library",
2170 | "extra": {
2171 | "branch-alias": {
2172 | "dev-master": "2.1.x-dev"
2173 | }
2174 | },
2175 | "autoload": {
2176 | "classmap": [
2177 | "src/"
2178 | ]
2179 | },
2180 | "notification-url": "https://packagist.org/downloads/",
2181 | "license": [
2182 | "BSD-3-Clause"
2183 | ],
2184 | "authors": [
2185 | {
2186 | "name": "Sebastian Bergmann",
2187 | "email": "sb@sebastian-bergmann.de",
2188 | "role": "lead"
2189 | }
2190 | ],
2191 | "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
2192 | "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
2193 | "keywords": [
2194 | "coverage",
2195 | "testing",
2196 | "xunit"
2197 | ],
2198 | "time": "2015-06-30 06:52:35"
2199 | },
2200 | {
2201 | "name": "phpunit/php-file-iterator",
2202 | "version": "1.4.0",
2203 | "source": {
2204 | "type": "git",
2205 | "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
2206 | "reference": "a923bb15680d0089e2316f7a4af8f437046e96bb"
2207 | },
2208 | "dist": {
2209 | "type": "zip",
2210 | "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a923bb15680d0089e2316f7a4af8f437046e96bb",
2211 | "reference": "a923bb15680d0089e2316f7a4af8f437046e96bb",
2212 | "shasum": ""
2213 | },
2214 | "require": {
2215 | "php": ">=5.3.3"
2216 | },
2217 | "type": "library",
2218 | "extra": {
2219 | "branch-alias": {
2220 | "dev-master": "1.4.x-dev"
2221 | }
2222 | },
2223 | "autoload": {
2224 | "classmap": [
2225 | "src/"
2226 | ]
2227 | },
2228 | "notification-url": "https://packagist.org/downloads/",
2229 | "license": [
2230 | "BSD-3-Clause"
2231 | ],
2232 | "authors": [
2233 | {
2234 | "name": "Sebastian Bergmann",
2235 | "email": "sb@sebastian-bergmann.de",
2236 | "role": "lead"
2237 | }
2238 | ],
2239 | "description": "FilterIterator implementation that filters files based on a list of suffixes.",
2240 | "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
2241 | "keywords": [
2242 | "filesystem",
2243 | "iterator"
2244 | ],
2245 | "time": "2015-04-02 05:19:05"
2246 | },
2247 | {
2248 | "name": "phpunit/php-text-template",
2249 | "version": "1.2.1",
2250 | "source": {
2251 | "type": "git",
2252 | "url": "https://github.com/sebastianbergmann/php-text-template.git",
2253 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
2254 | },
2255 | "dist": {
2256 | "type": "zip",
2257 | "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
2258 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
2259 | "shasum": ""
2260 | },
2261 | "require": {
2262 | "php": ">=5.3.3"
2263 | },
2264 | "type": "library",
2265 | "autoload": {
2266 | "classmap": [
2267 | "src/"
2268 | ]
2269 | },
2270 | "notification-url": "https://packagist.org/downloads/",
2271 | "license": [
2272 | "BSD-3-Clause"
2273 | ],
2274 | "authors": [
2275 | {
2276 | "name": "Sebastian Bergmann",
2277 | "email": "sebastian@phpunit.de",
2278 | "role": "lead"
2279 | }
2280 | ],
2281 | "description": "Simple template engine.",
2282 | "homepage": "https://github.com/sebastianbergmann/php-text-template/",
2283 | "keywords": [
2284 | "template"
2285 | ],
2286 | "time": "2015-06-21 13:50:34"
2287 | },
2288 | {
2289 | "name": "phpunit/php-timer",
2290 | "version": "1.0.6",
2291 | "source": {
2292 | "type": "git",
2293 | "url": "https://github.com/sebastianbergmann/php-timer.git",
2294 | "reference": "83fe1bdc5d47658b727595c14da140da92b3d66d"
2295 | },
2296 | "dist": {
2297 | "type": "zip",
2298 | "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/83fe1bdc5d47658b727595c14da140da92b3d66d",
2299 | "reference": "83fe1bdc5d47658b727595c14da140da92b3d66d",
2300 | "shasum": ""
2301 | },
2302 | "require": {
2303 | "php": ">=5.3.3"
2304 | },
2305 | "type": "library",
2306 | "autoload": {
2307 | "classmap": [
2308 | "src/"
2309 | ]
2310 | },
2311 | "notification-url": "https://packagist.org/downloads/",
2312 | "license": [
2313 | "BSD-3-Clause"
2314 | ],
2315 | "authors": [
2316 | {
2317 | "name": "Sebastian Bergmann",
2318 | "email": "sb@sebastian-bergmann.de",
2319 | "role": "lead"
2320 | }
2321 | ],
2322 | "description": "Utility class for timing",
2323 | "homepage": "https://github.com/sebastianbergmann/php-timer/",
2324 | "keywords": [
2325 | "timer"
2326 | ],
2327 | "time": "2015-06-13 07:35:30"
2328 | },
2329 | {
2330 | "name": "phpunit/php-token-stream",
2331 | "version": "1.4.3",
2332 | "source": {
2333 | "type": "git",
2334 | "url": "https://github.com/sebastianbergmann/php-token-stream.git",
2335 | "reference": "7a9b0969488c3c54fd62b4d504b3ec758fd005d9"
2336 | },
2337 | "dist": {
2338 | "type": "zip",
2339 | "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/7a9b0969488c3c54fd62b4d504b3ec758fd005d9",
2340 | "reference": "7a9b0969488c3c54fd62b4d504b3ec758fd005d9",
2341 | "shasum": ""
2342 | },
2343 | "require": {
2344 | "ext-tokenizer": "*",
2345 | "php": ">=5.3.3"
2346 | },
2347 | "require-dev": {
2348 | "phpunit/phpunit": "~4.2"
2349 | },
2350 | "type": "library",
2351 | "extra": {
2352 | "branch-alias": {
2353 | "dev-master": "1.4-dev"
2354 | }
2355 | },
2356 | "autoload": {
2357 | "classmap": [
2358 | "src/"
2359 | ]
2360 | },
2361 | "notification-url": "https://packagist.org/downloads/",
2362 | "license": [
2363 | "BSD-3-Clause"
2364 | ],
2365 | "authors": [
2366 | {
2367 | "name": "Sebastian Bergmann",
2368 | "email": "sebastian@phpunit.de"
2369 | }
2370 | ],
2371 | "description": "Wrapper around PHP's tokenizer extension.",
2372 | "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
2373 | "keywords": [
2374 | "tokenizer"
2375 | ],
2376 | "time": "2015-06-19 03:43:16"
2377 | },
2378 | {
2379 | "name": "phpunit/phpunit",
2380 | "version": "4.7.6",
2381 | "source": {
2382 | "type": "git",
2383 | "url": "https://github.com/sebastianbergmann/phpunit.git",
2384 | "reference": "0ebabb4cda7d066be8391dfdbaf57fe70ac9a99b"
2385 | },
2386 | "dist": {
2387 | "type": "zip",
2388 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0ebabb4cda7d066be8391dfdbaf57fe70ac9a99b",
2389 | "reference": "0ebabb4cda7d066be8391dfdbaf57fe70ac9a99b",
2390 | "shasum": ""
2391 | },
2392 | "require": {
2393 | "ext-dom": "*",
2394 | "ext-json": "*",
2395 | "ext-pcre": "*",
2396 | "ext-reflection": "*",
2397 | "ext-spl": "*",
2398 | "php": ">=5.3.3",
2399 | "phpspec/prophecy": "~1.3,>=1.3.1",
2400 | "phpunit/php-code-coverage": "~2.1",
2401 | "phpunit/php-file-iterator": "~1.4",
2402 | "phpunit/php-text-template": "~1.2",
2403 | "phpunit/php-timer": ">=1.0.6",
2404 | "phpunit/phpunit-mock-objects": "~2.3",
2405 | "sebastian/comparator": "~1.1",
2406 | "sebastian/diff": "~1.2",
2407 | "sebastian/environment": "~1.2",
2408 | "sebastian/exporter": "~1.2",
2409 | "sebastian/global-state": "~1.0",
2410 | "sebastian/version": "~1.0",
2411 | "symfony/yaml": "~2.1|~3.0"
2412 | },
2413 | "suggest": {
2414 | "phpunit/php-invoker": "~1.1"
2415 | },
2416 | "bin": [
2417 | "phpunit"
2418 | ],
2419 | "type": "library",
2420 | "extra": {
2421 | "branch-alias": {
2422 | "dev-master": "4.7.x-dev"
2423 | }
2424 | },
2425 | "autoload": {
2426 | "classmap": [
2427 | "src/"
2428 | ]
2429 | },
2430 | "notification-url": "https://packagist.org/downloads/",
2431 | "license": [
2432 | "BSD-3-Clause"
2433 | ],
2434 | "authors": [
2435 | {
2436 | "name": "Sebastian Bergmann",
2437 | "email": "sebastian@phpunit.de",
2438 | "role": "lead"
2439 | }
2440 | ],
2441 | "description": "The PHP Unit Testing framework.",
2442 | "homepage": "https://phpunit.de/",
2443 | "keywords": [
2444 | "phpunit",
2445 | "testing",
2446 | "xunit"
2447 | ],
2448 | "time": "2015-06-30 06:53:57"
2449 | },
2450 | {
2451 | "name": "phpunit/phpunit-mock-objects",
2452 | "version": "2.3.5",
2453 | "source": {
2454 | "type": "git",
2455 | "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
2456 | "reference": "1c330b1b6e1ea8fd15f2fbea46770576e366855c"
2457 | },
2458 | "dist": {
2459 | "type": "zip",
2460 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/1c330b1b6e1ea8fd15f2fbea46770576e366855c",
2461 | "reference": "1c330b1b6e1ea8fd15f2fbea46770576e366855c",
2462 | "shasum": ""
2463 | },
2464 | "require": {
2465 | "doctrine/instantiator": "~1.0,>=1.0.2",
2466 | "php": ">=5.3.3",
2467 | "phpunit/php-text-template": "~1.2"
2468 | },
2469 | "require-dev": {
2470 | "phpunit/phpunit": "~4.4"
2471 | },
2472 | "suggest": {
2473 | "ext-soap": "*"
2474 | },
2475 | "type": "library",
2476 | "extra": {
2477 | "branch-alias": {
2478 | "dev-master": "2.3.x-dev"
2479 | }
2480 | },
2481 | "autoload": {
2482 | "classmap": [
2483 | "src/"
2484 | ]
2485 | },
2486 | "notification-url": "https://packagist.org/downloads/",
2487 | "license": [
2488 | "BSD-3-Clause"
2489 | ],
2490 | "authors": [
2491 | {
2492 | "name": "Sebastian Bergmann",
2493 | "email": "sb@sebastian-bergmann.de",
2494 | "role": "lead"
2495 | }
2496 | ],
2497 | "description": "Mock Object library for PHPUnit",
2498 | "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
2499 | "keywords": [
2500 | "mock",
2501 | "xunit"
2502 | ],
2503 | "time": "2015-07-04 05:41:32"
2504 | },
2505 | {
2506 | "name": "sebastian/comparator",
2507 | "version": "1.1.1",
2508 | "source": {
2509 | "type": "git",
2510 | "url": "https://github.com/sebastianbergmann/comparator.git",
2511 | "reference": "1dd8869519a225f7f2b9eb663e225298fade819e"
2512 | },
2513 | "dist": {
2514 | "type": "zip",
2515 | "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1dd8869519a225f7f2b9eb663e225298fade819e",
2516 | "reference": "1dd8869519a225f7f2b9eb663e225298fade819e",
2517 | "shasum": ""
2518 | },
2519 | "require": {
2520 | "php": ">=5.3.3",
2521 | "sebastian/diff": "~1.2",
2522 | "sebastian/exporter": "~1.2"
2523 | },
2524 | "require-dev": {
2525 | "phpunit/phpunit": "~4.4"
2526 | },
2527 | "type": "library",
2528 | "extra": {
2529 | "branch-alias": {
2530 | "dev-master": "1.1.x-dev"
2531 | }
2532 | },
2533 | "autoload": {
2534 | "classmap": [
2535 | "src/"
2536 | ]
2537 | },
2538 | "notification-url": "https://packagist.org/downloads/",
2539 | "license": [
2540 | "BSD-3-Clause"
2541 | ],
2542 | "authors": [
2543 | {
2544 | "name": "Jeff Welch",
2545 | "email": "whatthejeff@gmail.com"
2546 | },
2547 | {
2548 | "name": "Volker Dusch",
2549 | "email": "github@wallbash.com"
2550 | },
2551 | {
2552 | "name": "Bernhard Schussek",
2553 | "email": "bschussek@2bepublished.at"
2554 | },
2555 | {
2556 | "name": "Sebastian Bergmann",
2557 | "email": "sebastian@phpunit.de"
2558 | }
2559 | ],
2560 | "description": "Provides the functionality to compare PHP values for equality",
2561 | "homepage": "http://www.github.com/sebastianbergmann/comparator",
2562 | "keywords": [
2563 | "comparator",
2564 | "compare",
2565 | "equality"
2566 | ],
2567 | "time": "2015-01-29 16:28:08"
2568 | },
2569 | {
2570 | "name": "sebastian/diff",
2571 | "version": "1.3.0",
2572 | "source": {
2573 | "type": "git",
2574 | "url": "https://github.com/sebastianbergmann/diff.git",
2575 | "reference": "863df9687835c62aa423a22412d26fa2ebde3fd3"
2576 | },
2577 | "dist": {
2578 | "type": "zip",
2579 | "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/863df9687835c62aa423a22412d26fa2ebde3fd3",
2580 | "reference": "863df9687835c62aa423a22412d26fa2ebde3fd3",
2581 | "shasum": ""
2582 | },
2583 | "require": {
2584 | "php": ">=5.3.3"
2585 | },
2586 | "require-dev": {
2587 | "phpunit/phpunit": "~4.2"
2588 | },
2589 | "type": "library",
2590 | "extra": {
2591 | "branch-alias": {
2592 | "dev-master": "1.3-dev"
2593 | }
2594 | },
2595 | "autoload": {
2596 | "classmap": [
2597 | "src/"
2598 | ]
2599 | },
2600 | "notification-url": "https://packagist.org/downloads/",
2601 | "license": [
2602 | "BSD-3-Clause"
2603 | ],
2604 | "authors": [
2605 | {
2606 | "name": "Kore Nordmann",
2607 | "email": "mail@kore-nordmann.de"
2608 | },
2609 | {
2610 | "name": "Sebastian Bergmann",
2611 | "email": "sebastian@phpunit.de"
2612 | }
2613 | ],
2614 | "description": "Diff implementation",
2615 | "homepage": "http://www.github.com/sebastianbergmann/diff",
2616 | "keywords": [
2617 | "diff"
2618 | ],
2619 | "time": "2015-02-22 15:13:53"
2620 | },
2621 | {
2622 | "name": "sebastian/environment",
2623 | "version": "1.2.2",
2624 | "source": {
2625 | "type": "git",
2626 | "url": "https://github.com/sebastianbergmann/environment.git",
2627 | "reference": "5a8c7d31914337b69923db26c4221b81ff5a196e"
2628 | },
2629 | "dist": {
2630 | "type": "zip",
2631 | "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5a8c7d31914337b69923db26c4221b81ff5a196e",
2632 | "reference": "5a8c7d31914337b69923db26c4221b81ff5a196e",
2633 | "shasum": ""
2634 | },
2635 | "require": {
2636 | "php": ">=5.3.3"
2637 | },
2638 | "require-dev": {
2639 | "phpunit/phpunit": "~4.4"
2640 | },
2641 | "type": "library",
2642 | "extra": {
2643 | "branch-alias": {
2644 | "dev-master": "1.3.x-dev"
2645 | }
2646 | },
2647 | "autoload": {
2648 | "classmap": [
2649 | "src/"
2650 | ]
2651 | },
2652 | "notification-url": "https://packagist.org/downloads/",
2653 | "license": [
2654 | "BSD-3-Clause"
2655 | ],
2656 | "authors": [
2657 | {
2658 | "name": "Sebastian Bergmann",
2659 | "email": "sebastian@phpunit.de"
2660 | }
2661 | ],
2662 | "description": "Provides functionality to handle HHVM/PHP environments",
2663 | "homepage": "http://www.github.com/sebastianbergmann/environment",
2664 | "keywords": [
2665 | "Xdebug",
2666 | "environment",
2667 | "hhvm"
2668 | ],
2669 | "time": "2015-01-01 10:01:08"
2670 | },
2671 | {
2672 | "name": "sebastian/exporter",
2673 | "version": "1.2.0",
2674 | "source": {
2675 | "type": "git",
2676 | "url": "https://github.com/sebastianbergmann/exporter.git",
2677 | "reference": "84839970d05254c73cde183a721c7af13aede943"
2678 | },
2679 | "dist": {
2680 | "type": "zip",
2681 | "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/84839970d05254c73cde183a721c7af13aede943",
2682 | "reference": "84839970d05254c73cde183a721c7af13aede943",
2683 | "shasum": ""
2684 | },
2685 | "require": {
2686 | "php": ">=5.3.3",
2687 | "sebastian/recursion-context": "~1.0"
2688 | },
2689 | "require-dev": {
2690 | "phpunit/phpunit": "~4.4"
2691 | },
2692 | "type": "library",
2693 | "extra": {
2694 | "branch-alias": {
2695 | "dev-master": "1.2.x-dev"
2696 | }
2697 | },
2698 | "autoload": {
2699 | "classmap": [
2700 | "src/"
2701 | ]
2702 | },
2703 | "notification-url": "https://packagist.org/downloads/",
2704 | "license": [
2705 | "BSD-3-Clause"
2706 | ],
2707 | "authors": [
2708 | {
2709 | "name": "Jeff Welch",
2710 | "email": "whatthejeff@gmail.com"
2711 | },
2712 | {
2713 | "name": "Volker Dusch",
2714 | "email": "github@wallbash.com"
2715 | },
2716 | {
2717 | "name": "Bernhard Schussek",
2718 | "email": "bschussek@2bepublished.at"
2719 | },
2720 | {
2721 | "name": "Sebastian Bergmann",
2722 | "email": "sebastian@phpunit.de"
2723 | },
2724 | {
2725 | "name": "Adam Harvey",
2726 | "email": "aharvey@php.net"
2727 | }
2728 | ],
2729 | "description": "Provides the functionality to export PHP variables for visualization",
2730 | "homepage": "http://www.github.com/sebastianbergmann/exporter",
2731 | "keywords": [
2732 | "export",
2733 | "exporter"
2734 | ],
2735 | "time": "2015-01-27 07:23:06"
2736 | },
2737 | {
2738 | "name": "sebastian/global-state",
2739 | "version": "1.0.0",
2740 | "source": {
2741 | "type": "git",
2742 | "url": "https://github.com/sebastianbergmann/global-state.git",
2743 | "reference": "c7428acdb62ece0a45e6306f1ae85e1c05b09c01"
2744 | },
2745 | "dist": {
2746 | "type": "zip",
2747 | "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/c7428acdb62ece0a45e6306f1ae85e1c05b09c01",
2748 | "reference": "c7428acdb62ece0a45e6306f1ae85e1c05b09c01",
2749 | "shasum": ""
2750 | },
2751 | "require": {
2752 | "php": ">=5.3.3"
2753 | },
2754 | "require-dev": {
2755 | "phpunit/phpunit": "~4.2"
2756 | },
2757 | "suggest": {
2758 | "ext-uopz": "*"
2759 | },
2760 | "type": "library",
2761 | "extra": {
2762 | "branch-alias": {
2763 | "dev-master": "1.0-dev"
2764 | }
2765 | },
2766 | "autoload": {
2767 | "classmap": [
2768 | "src/"
2769 | ]
2770 | },
2771 | "notification-url": "https://packagist.org/downloads/",
2772 | "license": [
2773 | "BSD-3-Clause"
2774 | ],
2775 | "authors": [
2776 | {
2777 | "name": "Sebastian Bergmann",
2778 | "email": "sebastian@phpunit.de"
2779 | }
2780 | ],
2781 | "description": "Snapshotting of global state",
2782 | "homepage": "http://www.github.com/sebastianbergmann/global-state",
2783 | "keywords": [
2784 | "global state"
2785 | ],
2786 | "time": "2014-10-06 09:23:50"
2787 | },
2788 | {
2789 | "name": "sebastian/recursion-context",
2790 | "version": "1.0.0",
2791 | "source": {
2792 | "type": "git",
2793 | "url": "https://github.com/sebastianbergmann/recursion-context.git",
2794 | "reference": "3989662bbb30a29d20d9faa04a846af79b276252"
2795 | },
2796 | "dist": {
2797 | "type": "zip",
2798 | "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/3989662bbb30a29d20d9faa04a846af79b276252",
2799 | "reference": "3989662bbb30a29d20d9faa04a846af79b276252",
2800 | "shasum": ""
2801 | },
2802 | "require": {
2803 | "php": ">=5.3.3"
2804 | },
2805 | "require-dev": {
2806 | "phpunit/phpunit": "~4.4"
2807 | },
2808 | "type": "library",
2809 | "extra": {
2810 | "branch-alias": {
2811 | "dev-master": "1.0.x-dev"
2812 | }
2813 | },
2814 | "autoload": {
2815 | "classmap": [
2816 | "src/"
2817 | ]
2818 | },
2819 | "notification-url": "https://packagist.org/downloads/",
2820 | "license": [
2821 | "BSD-3-Clause"
2822 | ],
2823 | "authors": [
2824 | {
2825 | "name": "Jeff Welch",
2826 | "email": "whatthejeff@gmail.com"
2827 | },
2828 | {
2829 | "name": "Sebastian Bergmann",
2830 | "email": "sebastian@phpunit.de"
2831 | },
2832 | {
2833 | "name": "Adam Harvey",
2834 | "email": "aharvey@php.net"
2835 | }
2836 | ],
2837 | "description": "Provides functionality to recursively process PHP variables",
2838 | "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
2839 | "time": "2015-01-24 09:48:32"
2840 | },
2841 | {
2842 | "name": "sebastian/version",
2843 | "version": "1.0.6",
2844 | "source": {
2845 | "type": "git",
2846 | "url": "https://github.com/sebastianbergmann/version.git",
2847 | "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6"
2848 | },
2849 | "dist": {
2850 | "type": "zip",
2851 | "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
2852 | "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
2853 | "shasum": ""
2854 | },
2855 | "type": "library",
2856 | "autoload": {
2857 | "classmap": [
2858 | "src/"
2859 | ]
2860 | },
2861 | "notification-url": "https://packagist.org/downloads/",
2862 | "license": [
2863 | "BSD-3-Clause"
2864 | ],
2865 | "authors": [
2866 | {
2867 | "name": "Sebastian Bergmann",
2868 | "email": "sebastian@phpunit.de",
2869 | "role": "lead"
2870 | }
2871 | ],
2872 | "description": "Library that helps with managing the version number of Git-hosted PHP projects",
2873 | "homepage": "https://github.com/sebastianbergmann/version",
2874 | "time": "2015-06-21 13:59:46"
2875 | },
2876 | {
2877 | "name": "symfony/yaml",
2878 | "version": "v2.7.1",
2879 | "source": {
2880 | "type": "git",
2881 | "url": "https://github.com/symfony/Yaml.git",
2882 | "reference": "9808e75c609a14f6db02f70fccf4ca4aab53c160"
2883 | },
2884 | "dist": {
2885 | "type": "zip",
2886 | "url": "https://api.github.com/repos/symfony/Yaml/zipball/9808e75c609a14f6db02f70fccf4ca4aab53c160",
2887 | "reference": "9808e75c609a14f6db02f70fccf4ca4aab53c160",
2888 | "shasum": ""
2889 | },
2890 | "require": {
2891 | "php": ">=5.3.9"
2892 | },
2893 | "require-dev": {
2894 | "symfony/phpunit-bridge": "~2.7"
2895 | },
2896 | "type": "library",
2897 | "extra": {
2898 | "branch-alias": {
2899 | "dev-master": "2.7-dev"
2900 | }
2901 | },
2902 | "autoload": {
2903 | "psr-4": {
2904 | "Symfony\\Component\\Yaml\\": ""
2905 | }
2906 | },
2907 | "notification-url": "https://packagist.org/downloads/",
2908 | "license": [
2909 | "MIT"
2910 | ],
2911 | "authors": [
2912 | {
2913 | "name": "Fabien Potencier",
2914 | "email": "fabien@symfony.com"
2915 | },
2916 | {
2917 | "name": "Symfony Community",
2918 | "homepage": "https://symfony.com/contributors"
2919 | }
2920 | ],
2921 | "description": "Symfony Yaml Component",
2922 | "homepage": "https://symfony.com",
2923 | "time": "2015-06-10 15:30:22"
2924 | }
2925 | ],
2926 | "aliases": [],
2927 | "minimum-stability": "stable",
2928 | "stability-flags": [],
2929 | "prefer-stable": false,
2930 | "prefer-lowest": false,
2931 | "platform": {
2932 | "php": ">=5.5.9"
2933 | },
2934 | "platform-dev": []
2935 | }
2936 |
--------------------------------------------------------------------------------
/config/app.php:
--------------------------------------------------------------------------------
1 | env('APP_DEBUG', false),
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' => env('APP_KEY', 'SomeRandomString'),
82 |
83 | 'cipher' => 'AES-256-CBC',
84 |
85 | /*
86 | |--------------------------------------------------------------------------
87 | | Logging Configuration
88 | |--------------------------------------------------------------------------
89 | |
90 | | Here you may configure the log settings for your application. Out of
91 | | the box, Laravel uses the Monolog PHP logging library. This gives
92 | | you a variety of powerful log handlers / formatters to utilize.
93 | |
94 | | Available Settings: "single", "daily", "syslog", "errorlog"
95 | |
96 | */
97 |
98 | 'log' => 'single',
99 |
100 | /*
101 | |--------------------------------------------------------------------------
102 | | Autoloaded Service Providers
103 | |--------------------------------------------------------------------------
104 | |
105 | | The service providers listed here will be automatically loaded on the
106 | | request to your application. Feel free to add your own services to
107 | | this array to grant expanded functionality to your applications.
108 | |
109 | */
110 |
111 | 'providers' => [
112 |
113 | /*
114 | * Laravel Framework Service Providers...
115 | */
116 | Illuminate\Foundation\Providers\ArtisanServiceProvider::class,
117 | Illuminate\Auth\AuthServiceProvider::class,
118 | Illuminate\Broadcasting\BroadcastServiceProvider::class,
119 | Illuminate\Bus\BusServiceProvider::class,
120 | Illuminate\Cache\CacheServiceProvider::class,
121 | Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class,
122 | Illuminate\Routing\ControllerServiceProvider::class,
123 | Illuminate\Cookie\CookieServiceProvider::class,
124 | Illuminate\Database\DatabaseServiceProvider::class,
125 | Illuminate\Encryption\EncryptionServiceProvider::class,
126 | Illuminate\Filesystem\FilesystemServiceProvider::class,
127 | Illuminate\Foundation\Providers\FoundationServiceProvider::class,
128 | Illuminate\Hashing\HashServiceProvider::class,
129 | Illuminate\Mail\MailServiceProvider::class,
130 | Illuminate\Pagination\PaginationServiceProvider::class,
131 | Illuminate\Pipeline\PipelineServiceProvider::class,
132 | Illuminate\Queue\QueueServiceProvider::class,
133 | Illuminate\Redis\RedisServiceProvider::class,
134 | Illuminate\Auth\Passwords\PasswordResetServiceProvider::class,
135 | Illuminate\Session\SessionServiceProvider::class,
136 | Illuminate\Translation\TranslationServiceProvider::class,
137 | Illuminate\Validation\ValidationServiceProvider::class,
138 | Illuminate\View\ViewServiceProvider::class,
139 |
140 | /*
141 | * Application Service Providers...
142 | */
143 | App\Providers\AppServiceProvider::class,
144 | App\Providers\EventServiceProvider::class,
145 | App\Providers\RouteServiceProvider::class,
146 |
147 | ],
148 |
149 | /*
150 | |--------------------------------------------------------------------------
151 | | Class Aliases
152 | |--------------------------------------------------------------------------
153 | |
154 | | This array of class aliases will be registered when this application
155 | | is started. However, feel free to register as many as you wish as
156 | | the aliases are "lazy" loaded so they don't hinder performance.
157 | |
158 | */
159 |
160 | 'aliases' => [
161 |
162 | 'App' => Illuminate\Support\Facades\App::class,
163 | 'Artisan' => Illuminate\Support\Facades\Artisan::class,
164 | 'Auth' => Illuminate\Support\Facades\Auth::class,
165 | 'Blade' => Illuminate\Support\Facades\Blade::class,
166 | 'Bus' => Illuminate\Support\Facades\Bus::class,
167 | 'Cache' => Illuminate\Support\Facades\Cache::class,
168 | 'Config' => Illuminate\Support\Facades\Config::class,
169 | 'Cookie' => Illuminate\Support\Facades\Cookie::class,
170 | 'Crypt' => Illuminate\Support\Facades\Crypt::class,
171 | 'DB' => Illuminate\Support\Facades\DB::class,
172 | 'Eloquent' => Illuminate\Database\Eloquent\Model::class,
173 | 'Event' => Illuminate\Support\Facades\Event::class,
174 | 'File' => Illuminate\Support\Facades\File::class,
175 | 'Hash' => Illuminate\Support\Facades\Hash::class,
176 | 'Input' => Illuminate\Support\Facades\Input::class,
177 | 'Inspiring' => Illuminate\Foundation\Inspiring::class,
178 | 'Lang' => Illuminate\Support\Facades\Lang::class,
179 | 'Log' => Illuminate\Support\Facades\Log::class,
180 | 'Mail' => Illuminate\Support\Facades\Mail::class,
181 | 'Password' => Illuminate\Support\Facades\Password::class,
182 | 'Queue' => Illuminate\Support\Facades\Queue::class,
183 | 'Redirect' => Illuminate\Support\Facades\Redirect::class,
184 | 'Redis' => Illuminate\Support\Facades\Redis::class,
185 | 'Request' => Illuminate\Support\Facades\Request::class,
186 | 'Response' => Illuminate\Support\Facades\Response::class,
187 | 'Route' => Illuminate\Support\Facades\Route::class,
188 | 'Schema' => Illuminate\Support\Facades\Schema::class,
189 | 'Session' => Illuminate\Support\Facades\Session::class,
190 | 'Storage' => Illuminate\Support\Facades\Storage::class,
191 | 'URL' => Illuminate\Support\Facades\URL::class,
192 | 'Validator' => Illuminate\Support\Facades\Validator::class,
193 | 'View' => Illuminate\Support\Facades\View::class,
194 |
195 | ],
196 |
197 | ];
198 |
--------------------------------------------------------------------------------
/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' => App\User::class,
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 Reset Settings
49 | |--------------------------------------------------------------------------
50 | |
51 | | Here you may set the options for resetting passwords including the view
52 | | that is your password reset e-mail. You can also set the name of the
53 | | table that maintains all of the reset tokens for your application.
54 | |
55 | | The expire time is the number of minutes that the reset token 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 | 'password' => [
62 | 'email' => 'emails.password',
63 | 'table' => 'password_resets',
64 | 'expire' => 60,
65 | ],
66 |
67 | ];
68 |
--------------------------------------------------------------------------------
/config/broadcasting.php:
--------------------------------------------------------------------------------
1 | env('BROADCAST_DRIVER', 'pusher'),
17 |
18 | /*
19 | |--------------------------------------------------------------------------
20 | | Broadcast Connections
21 | |--------------------------------------------------------------------------
22 | |
23 | | Here you may define all of the broadcast connections that will be used
24 | | to broadcast events to other systems or over websockets. Samples of
25 | | each available type of connection are provided inside this array.
26 | |
27 | */
28 |
29 | 'connections' => [
30 |
31 | 'pusher' => [
32 | 'driver' => 'pusher',
33 | 'key' => env('PUSHER_KEY'),
34 | 'secret' => env('PUSHER_SECRET'),
35 | 'app_id' => env('PUSHER_APP_ID'),
36 | ],
37 |
38 | 'redis' => [
39 | 'driver' => 'redis',
40 | 'connection' => 'default',
41 | ],
42 |
43 | 'log' => [
44 | 'driver' => 'log',
45 | ],
46 |
47 | ],
48 |
49 | ];
50 |
--------------------------------------------------------------------------------
/config/cache.php:
--------------------------------------------------------------------------------
1 | env('CACHE_DRIVER', 'file'),
17 |
18 | /*
19 | |--------------------------------------------------------------------------
20 | | Cache Stores
21 | |--------------------------------------------------------------------------
22 | |
23 | | Here you may define all of the cache "stores" for your application as
24 | | well as their drivers. You may even define multiple stores for the
25 | | same cache driver to group types of items stored in your caches.
26 | |
27 | */
28 |
29 | 'stores' => [
30 |
31 | 'apc' => [
32 | 'driver' => 'apc',
33 | ],
34 |
35 | 'array' => [
36 | 'driver' => 'array',
37 | ],
38 |
39 | 'database' => [
40 | 'driver' => 'database',
41 | 'table' => 'cache',
42 | 'connection' => null,
43 | ],
44 |
45 | 'file' => [
46 | 'driver' => 'file',
47 | 'path' => storage_path('framework/cache'),
48 | ],
49 |
50 | 'memcached' => [
51 | 'driver' => 'memcached',
52 | 'servers' => [
53 | [
54 | 'host' => '127.0.0.1', 'port' => 11211, 'weight' => 100,
55 | ],
56 | ],
57 | ],
58 |
59 | 'redis' => [
60 | 'driver' => 'redis',
61 | 'connection' => 'default',
62 | ],
63 |
64 | ],
65 |
66 | /*
67 | |--------------------------------------------------------------------------
68 | | Cache Key Prefix
69 | |--------------------------------------------------------------------------
70 | |
71 | | When utilizing a RAM based store such as APC or Memcached, there might
72 | | be other applications utilizing the same cache. So, we'll specify a
73 | | value to get prefixed to all our keys so we can avoid collisions.
74 | |
75 | */
76 |
77 | 'prefix' => 'laravel',
78 |
79 | ];
80 |
--------------------------------------------------------------------------------
/config/compile.php:
--------------------------------------------------------------------------------
1 | [
17 | //
18 | ],
19 |
20 | /*
21 | |--------------------------------------------------------------------------
22 | | Compiled File Providers
23 | |--------------------------------------------------------------------------
24 | |
25 | | Here you may list service providers which define a "compiles" function
26 | | that returns additional files that should be compiled, providing an
27 | | easy way to get common files from any packages you are utilizing.
28 | |
29 | */
30 |
31 | 'providers' => [
32 | //
33 | ],
34 |
35 | ];
36 |
--------------------------------------------------------------------------------
/config/database.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' => env('DB_CONNECTION', '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' => [
48 |
49 | 'sqlite' => [
50 | 'driver' => 'sqlite',
51 | 'database' => storage_path('database.sqlite'),
52 | 'prefix' => '',
53 | ],
54 |
55 | 'mysql' => [
56 | 'driver' => 'mysql',
57 | 'host' => env('MYSQL_PORT_3306_TCP_ADDR', 'localhost'),
58 | 'database' => env('MYSQL_INSTANCE_NAME', 'forge'),
59 | 'username' => env('MYSQL_USERNAME', 'forge'),
60 | 'password' => env('MYSQL_PASSWORD', ''),
61 | 'charset' => 'utf8',
62 | 'collation' => 'utf8_unicode_ci',
63 | 'prefix' => '',
64 | 'strict' => false,
65 | ],
66 |
67 | 'pgsql' => [
68 | 'driver' => 'pgsql',
69 | 'host' => env('DB_HOST', 'localhost'),
70 | 'database' => env('DB_DATABASE', 'forge'),
71 | 'username' => env('DB_USERNAME', 'forge'),
72 | 'password' => env('DB_PASSWORD', ''),
73 | 'charset' => 'utf8',
74 | 'prefix' => '',
75 | 'schema' => 'public',
76 | ],
77 |
78 | 'sqlsrv' => [
79 | 'driver' => 'sqlsrv',
80 | 'host' => env('DB_HOST', 'localhost'),
81 | 'database' => env('DB_DATABASE', 'forge'),
82 | 'username' => env('DB_USERNAME', 'forge'),
83 | 'password' => env('DB_PASSWORD', ''),
84 | 'charset' => 'utf8',
85 | 'prefix' => '',
86 | ],
87 |
88 | ],
89 |
90 | /*
91 | |--------------------------------------------------------------------------
92 | | Migration Repository Table
93 | |--------------------------------------------------------------------------
94 | |
95 | | This table keeps track of all the migrations that have already run for
96 | | your application. Using this information, we can determine which of
97 | | the migrations on disk haven't actually been run in the database.
98 | |
99 | */
100 |
101 | 'migrations' => 'migrations',
102 |
103 | /*
104 | |--------------------------------------------------------------------------
105 | | Redis Databases
106 | |--------------------------------------------------------------------------
107 | |
108 | | Redis is an open source, fast, and advanced key-value store that also
109 | | provides a richer set of commands than a typical key-value systems
110 | | such as APC or Memcached. Laravel makes it easy to dig right in.
111 | |
112 | */
113 |
114 | 'redis' => [
115 |
116 | 'cluster' => false,
117 |
118 | 'default' => [
119 | 'host' => '127.0.0.1',
120 | 'port' => 6379,
121 | 'database' => 0,
122 | ],
123 |
124 | ],
125 |
126 | ];
127 |
--------------------------------------------------------------------------------
/config/filesystems.php:
--------------------------------------------------------------------------------
1 | 'local',
19 |
20 | /*
21 | |--------------------------------------------------------------------------
22 | | Default Cloud Filesystem Disk
23 | |--------------------------------------------------------------------------
24 | |
25 | | Many applications store files both locally and in the cloud. For this
26 | | reason, you may specify a default "cloud" driver here. This driver
27 | | will be bound as the Cloud disk implementation in the container.
28 | |
29 | */
30 |
31 | 'cloud' => 's3',
32 |
33 | /*
34 | |--------------------------------------------------------------------------
35 | | Filesystem Disks
36 | |--------------------------------------------------------------------------
37 | |
38 | | Here you may configure as many filesystem "disks" as you wish, and you
39 | | may even configure multiple disks of the same driver. Defaults have
40 | | been setup for each driver as an example of the required options.
41 | |
42 | */
43 |
44 | 'disks' => [
45 |
46 | 'local' => [
47 | 'driver' => 'local',
48 | 'root' => storage_path('app'),
49 | ],
50 |
51 | 'ftp' => [
52 | 'driver' => 'ftp',
53 | 'host' => 'ftp.example.com',
54 | 'username' => 'your-username',
55 | 'password' => 'your-password',
56 |
57 | // Optional FTP Settings...
58 | // 'port' => 21,
59 | // 'root' => '',
60 | // 'passive' => true,
61 | // 'ssl' => true,
62 | // 'timeout' => 30,
63 | ],
64 |
65 | 's3' => [
66 | 'driver' => 's3',
67 | 'key' => 'your-key',
68 | 'secret' => 'your-secret',
69 | 'region' => 'your-region',
70 | 'bucket' => 'your-bucket',
71 | ],
72 |
73 | 'rackspace' => [
74 | 'driver' => 'rackspace',
75 | 'username' => 'your-username',
76 | 'key' => 'your-key',
77 | 'container' => 'your-container',
78 | 'endpoint' => 'https://identity.api.rackspacecloud.com/v2.0/',
79 | 'region' => 'IAD',
80 | 'url_type' => 'publicURL',
81 | ],
82 |
83 | ],
84 |
85 | ];
86 |
--------------------------------------------------------------------------------
/config/mail.php:
--------------------------------------------------------------------------------
1 | env('MAIL_DRIVER', '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' => env('MAIL_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' => env('MAIL_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' => ['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' => env('MAIL_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' => env('MAIL_USERNAME'),
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' => env('MAIL_PASSWORD'),
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 |
--------------------------------------------------------------------------------
/config/queue.php:
--------------------------------------------------------------------------------
1 | env('QUEUE_DRIVER', 'sync'),
20 |
21 | /*
22 | |--------------------------------------------------------------------------
23 | | Queue Connections
24 | |--------------------------------------------------------------------------
25 | |
26 | | Here you may configure the connection information for each server that
27 | | is used by your application. A default configuration has been added
28 | | for each back-end shipped with Laravel. You are free to add more.
29 | |
30 | */
31 |
32 | 'connections' => [
33 |
34 | 'sync' => [
35 | 'driver' => 'sync',
36 | ],
37 |
38 | 'database' => [
39 | 'driver' => 'database',
40 | 'table' => 'jobs',
41 | 'queue' => 'default',
42 | 'expire' => 60,
43 | ],
44 |
45 | 'beanstalkd' => [
46 | 'driver' => 'beanstalkd',
47 | 'host' => 'localhost',
48 | 'queue' => 'default',
49 | 'ttr' => 60,
50 | ],
51 |
52 | 'sqs' => [
53 | 'driver' => 'sqs',
54 | 'key' => 'your-public-key',
55 | 'secret' => 'your-secret-key',
56 | 'queue' => 'your-queue-url',
57 | 'region' => 'us-east-1',
58 | ],
59 |
60 | 'iron' => [
61 | 'driver' => 'iron',
62 | 'host' => 'mq-aws-us-east-1.iron.io',
63 | 'token' => 'your-token',
64 | 'project' => 'your-project-id',
65 | 'queue' => 'your-queue-name',
66 | 'encrypt' => true,
67 | ],
68 |
69 | 'redis' => [
70 | 'driver' => 'redis',
71 | 'connection' => 'default',
72 | 'queue' => 'default',
73 | 'expire' => 60,
74 | ],
75 |
76 | ],
77 |
78 | /*
79 | |--------------------------------------------------------------------------
80 | | Failed Queue Jobs
81 | |--------------------------------------------------------------------------
82 | |
83 | | These options configure the behavior of failed queue job logging so you
84 | | can control which database and table are used to store the jobs that
85 | | have failed. You may change them to any database / table you wish.
86 | |
87 | */
88 |
89 | 'failed' => [
90 | 'database' => 'mysql', 'table' => 'failed_jobs',
91 | ],
92 |
93 | ];
94 |
--------------------------------------------------------------------------------
/config/services.php:
--------------------------------------------------------------------------------
1 | [
18 | 'domain' => '',
19 | 'secret' => '',
20 | ],
21 |
22 | 'mandrill' => [
23 | 'secret' => '',
24 | ],
25 |
26 | 'ses' => [
27 | 'key' => '',
28 | 'secret' => '',
29 | 'region' => 'us-east-1',
30 | ],
31 |
32 | 'stripe' => [
33 | 'model' => App\User::class,
34 | 'key' => '',
35 | 'secret' => '',
36 | ],
37 |
38 | ];
39 |
--------------------------------------------------------------------------------
/config/session.php:
--------------------------------------------------------------------------------
1 | env('SESSION_DRIVER', '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 Encryption
39 | |--------------------------------------------------------------------------
40 | |
41 | | This option allows you to easily specify that all of your session data
42 | | should be encrypted before it is stored. All encryption will be run
43 | | automatically by Laravel and you can use the Session like normal.
44 | |
45 | */
46 |
47 | 'encrypt' => false,
48 |
49 | /*
50 | |--------------------------------------------------------------------------
51 | | Session File Location
52 | |--------------------------------------------------------------------------
53 | |
54 | | When using the native session driver, we need a location where session
55 | | files may be stored. A default has been set for you but a different
56 | | location may be specified. This is only needed for file sessions.
57 | |
58 | */
59 |
60 | 'files' => storage_path('framework/sessions'),
61 |
62 | /*
63 | |--------------------------------------------------------------------------
64 | | Session Database Connection
65 | |--------------------------------------------------------------------------
66 | |
67 | | When using the "database" or "redis" session drivers, you may specify a
68 | | connection that should be used to manage these sessions. This should
69 | | correspond to a connection in your database configuration options.
70 | |
71 | */
72 |
73 | 'connection' => null,
74 |
75 | /*
76 | |--------------------------------------------------------------------------
77 | | Session Database Table
78 | |--------------------------------------------------------------------------
79 | |
80 | | When using the "database" session driver, you may specify the table we
81 | | should use to manage the sessions. Of course, a sensible default is
82 | | provided for you; however, you are free to change this as needed.
83 | |
84 | */
85 |
86 | 'table' => 'sessions',
87 |
88 | /*
89 | |--------------------------------------------------------------------------
90 | | Session Sweeping Lottery
91 | |--------------------------------------------------------------------------
92 | |
93 | | Some session drivers must manually sweep their storage location to get
94 | | rid of old sessions from storage. Here are the chances that it will
95 | | happen on a given request. By default, the odds are 2 out of 100.
96 | |
97 | */
98 |
99 | 'lottery' => [2, 100],
100 |
101 | /*
102 | |--------------------------------------------------------------------------
103 | | Session Cookie Name
104 | |--------------------------------------------------------------------------
105 | |
106 | | Here you may change the name of the cookie used to identify a session
107 | | instance by ID. The name specified here will get used every time a
108 | | new session cookie is created by the framework for every driver.
109 | |
110 | */
111 |
112 | 'cookie' => 'laravel_session',
113 |
114 | /*
115 | |--------------------------------------------------------------------------
116 | | Session Cookie Path
117 | |--------------------------------------------------------------------------
118 | |
119 | | The session cookie path determines the path for which the cookie will
120 | | be regarded as available. Typically, this will be the root path of
121 | | your application but you are free to change this when necessary.
122 | |
123 | */
124 |
125 | 'path' => '/',
126 |
127 | /*
128 | |--------------------------------------------------------------------------
129 | | Session Cookie Domain
130 | |--------------------------------------------------------------------------
131 | |
132 | | Here you may change the domain of the cookie used to identify a session
133 | | in your application. This will determine which domains the cookie is
134 | | available to in your application. A sensible default has been set.
135 | |
136 | */
137 |
138 | 'domain' => null,
139 |
140 | /*
141 | |--------------------------------------------------------------------------
142 | | HTTPS Only Cookies
143 | |--------------------------------------------------------------------------
144 | |
145 | | By setting this option to true, session cookies will only be sent back
146 | | to the server if the browser has a HTTPS connection. This will keep
147 | | the cookie from being sent to you if it can not be done securely.
148 | |
149 | */
150 |
151 | 'secure' => false,
152 |
153 | ];
154 |
--------------------------------------------------------------------------------
/config/view.php:
--------------------------------------------------------------------------------
1 | [
17 | realpath(base_path('resources/views')),
18 | ],
19 |
20 | /*
21 | |--------------------------------------------------------------------------
22 | | Compiled View Path
23 | |--------------------------------------------------------------------------
24 | |
25 | | This option determines where all the compiled Blade templates will be
26 | | stored for your application. Typically, this is within the storage
27 | | directory. However, as usual, you are free to change this value.
28 | |
29 | */
30 |
31 | 'compiled' => realpath(storage_path('framework/views')),
32 |
33 | ];
34 |
--------------------------------------------------------------------------------
/database/.gitignore:
--------------------------------------------------------------------------------
1 | *.sqlite
2 |
--------------------------------------------------------------------------------
/database/factories/ModelFactory.php:
--------------------------------------------------------------------------------
1 | define(App\User::class, function ($faker) {
15 | // return [
16 | // 'name' => $faker->name,
17 | // 'email' => $faker->email,
18 | // 'password' => str_random(10),
19 | // 'remember_token' => str_random(10),
20 | // ];
21 | //});php
22 | $factory->define(App\Contact::class, function (Faker\Generator $faker) {
23 | return [
24 | 'name' => $faker->name,
25 | 'phone' => $faker->phoneNumber,
26 | ];
27 | });
28 |
--------------------------------------------------------------------------------
/database/migrations/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DaoCloud/php-laravel-mysql-sample/6b40ba34c267b1cd4bdb2585e2734c1352db98d8/database/migrations/.gitkeep
--------------------------------------------------------------------------------
/database/migrations/2015_07_13_082655_create_contacts_table.php:
--------------------------------------------------------------------------------
1 | increments('id');
17 |
18 | $table->string('name');
19 | $table->string('phone');
20 |
21 | $table->timestamps();
22 | });
23 | }
24 |
25 | /**
26 | * Reverse the migrations.
27 | *
28 | * @return void
29 | */
30 | public function down()
31 | {
32 | Schema::drop('contacts');
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/database/seeds/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DaoCloud/php-laravel-mysql-sample/6b40ba34c267b1cd4bdb2585e2734c1352db98d8/database/seeds/.gitkeep
--------------------------------------------------------------------------------
/database/seeds/ContactSeeder.php:
--------------------------------------------------------------------------------
1 | create();
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/database/seeds/DatabaseSeeder.php:
--------------------------------------------------------------------------------
1 | call(ContactSeeder::class);
18 |
19 | Model::reguard();
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/gulpfile.js:
--------------------------------------------------------------------------------
1 | var elixir = require('laravel-elixir');
2 |
3 | /*
4 | |--------------------------------------------------------------------------
5 | | Elixir Asset Management
6 | |--------------------------------------------------------------------------
7 | |
8 | | Elixir provides a clean, fluent API for defining some basic Gulp tasks
9 | | for your Laravel application. By default, we are compiling the Sass
10 | | file for our application, as well as publishing vendor resources.
11 | |
12 | */
13 |
14 | elixir(function(mix) {
15 | mix.sass('app.scss');
16 | });
17 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "private": true,
3 | "devDependencies": {
4 | "gulp": "^3.8.8"
5 | },
6 | "dependencies": {
7 | "laravel-elixir": "^2.0.0",
8 | "bootstrap-sass": "^3.0.0"
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/php-laravel-mysql-sample.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DaoCloud/php-laravel-mysql-sample/6b40ba34c267b1cd4bdb2585e2734c1352db98d8/php-laravel-mysql-sample.png
--------------------------------------------------------------------------------
/phpspec.yml:
--------------------------------------------------------------------------------
1 | suites:
2 | main:
3 | namespace: App
4 | psr4_prefix: App
5 | src_path: app
--------------------------------------------------------------------------------
/phpunit.xml:
--------------------------------------------------------------------------------
1 |
2 |
12 |
13 |
14 | ./tests/
15 |
16 |
17 |
18 |
19 | app/
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/public/.htaccess:
--------------------------------------------------------------------------------
1 |
2 |
3 | Options -MultiViews
4 |
5 |
6 | RewriteEngine On
7 |
8 | # Redirect Trailing Slashes If Not A Folder...
9 | RewriteCond %{REQUEST_FILENAME} !-d
10 | RewriteRule ^(.*)/$ /$1 [L,R=301]
11 |
12 | # Handle Front Controller...
13 | RewriteCond %{REQUEST_FILENAME} !-d
14 | RewriteCond %{REQUEST_FILENAME} !-f
15 | RewriteRule ^ index.php [L]
16 |
17 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DaoCloud/php-laravel-mysql-sample/6b40ba34c267b1cd4bdb2585e2734c1352db98d8/public/favicon.ico
--------------------------------------------------------------------------------
/public/index.php:
--------------------------------------------------------------------------------
1 |
8 | */
9 |
10 | /*
11 | |--------------------------------------------------------------------------
12 | | Register The Auto Loader
13 | |--------------------------------------------------------------------------
14 | |
15 | | Composer provides a convenient, automatically generated class loader for
16 | | our application. We just need to utilize it! We'll simply require it
17 | | into the script here so that we don't have to worry about manual
18 | | loading any of our classes later on. It feels nice to relax.
19 | |
20 | */
21 |
22 | require __DIR__.'/../bootstrap/autoload.php';
23 |
24 | /*
25 | |--------------------------------------------------------------------------
26 | | Turn On The Lights
27 | |--------------------------------------------------------------------------
28 | |
29 | | We need to illuminate PHP development, so let us turn on the lights.
30 | | This bootstraps the framework and gets it ready for use, then it
31 | | will load up this application so that we can run it and send
32 | | the responses back to the browser and delight our users.
33 | |
34 | */
35 |
36 | $app = require_once __DIR__.'/../bootstrap/app.php';
37 |
38 | /*
39 | |--------------------------------------------------------------------------
40 | | Run The Application
41 | |--------------------------------------------------------------------------
42 | |
43 | | Once we have the application, we can handle the incoming request
44 | | through the kernel, and send the associated response back to
45 | | the client's browser allowing them to enjoy the creative
46 | | and wonderful application we have prepared for them.
47 | |
48 | */
49 |
50 | $kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
51 |
52 | $response = $kernel->handle(
53 | $request = Illuminate\Http\Request::capture()
54 | );
55 |
56 | $response->send();
57 |
58 | $kernel->terminate($request, $response);
59 |
--------------------------------------------------------------------------------
/public/robots.txt:
--------------------------------------------------------------------------------
1 | User-agent: *
2 | Disallow:
3 |
--------------------------------------------------------------------------------
/resources/assets/sass/app.scss:
--------------------------------------------------------------------------------
1 | // @import "node_modules/bootstrap-sass/assets/stylesheets/bootstrap";
2 |
3 |
--------------------------------------------------------------------------------
/resources/lang/en/pagination.php:
--------------------------------------------------------------------------------
1 | '« Previous',
17 | 'next' => 'Next »',
18 |
19 | ];
20 |
--------------------------------------------------------------------------------
/resources/lang/en/passwords.php:
--------------------------------------------------------------------------------
1 | 'Passwords must be at least six characters and match the confirmation.',
17 | 'user' => "We can't find a user with that e-mail address.",
18 | 'token' => 'This password reset token is invalid.',
19 | 'sent' => 'We have e-mailed your password reset link!',
20 | 'reset' => 'Your password has been reset!',
21 |
22 | ];
23 |
--------------------------------------------------------------------------------
/resources/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' => [
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 | 'filled' => 'The :attribute field is required.',
39 | 'exists' => 'The selected :attribute is invalid.',
40 | 'image' => 'The :attribute must be an image.',
41 | 'in' => 'The selected :attribute is invalid.',
42 | 'integer' => 'The :attribute must be an integer.',
43 | 'ip' => 'The :attribute must be a valid IP address.',
44 | 'max' => [
45 | 'numeric' => 'The :attribute may not be greater than :max.',
46 | 'file' => 'The :attribute may not be greater than :max kilobytes.',
47 | 'string' => 'The :attribute may not be greater than :max characters.',
48 | 'array' => 'The :attribute may not have more than :max items.',
49 | ],
50 | 'mimes' => 'The :attribute must be a file of type: :values.',
51 | 'min' => [
52 | 'numeric' => 'The :attribute must be at least :min.',
53 | 'file' => 'The :attribute must be at least :min kilobytes.',
54 | 'string' => 'The :attribute must be at least :min characters.',
55 | 'array' => 'The :attribute must have at least :min items.',
56 | ],
57 | 'not_in' => 'The selected :attribute is invalid.',
58 | 'numeric' => 'The :attribute must be a number.',
59 | 'regex' => 'The :attribute format is invalid.',
60 | 'required' => 'The :attribute field is required.',
61 | 'required_if' => 'The :attribute field is required when :other is :value.',
62 | 'required_with' => 'The :attribute field is required when :values is present.',
63 | 'required_with_all' => 'The :attribute field is required when :values is present.',
64 | 'required_without' => 'The :attribute field is required when :values is not present.',
65 | 'required_without_all' => 'The :attribute field is required when none of :values are present.',
66 | 'same' => 'The :attribute and :other must match.',
67 | 'size' => [
68 | 'numeric' => 'The :attribute must be :size.',
69 | 'file' => 'The :attribute must be :size kilobytes.',
70 | 'string' => 'The :attribute must be :size characters.',
71 | 'array' => 'The :attribute must contain :size items.',
72 | ],
73 | 'string' => 'The :attribute must be a string.',
74 | 'timezone' => 'The :attribute must be a valid zone.',
75 | 'unique' => 'The :attribute has already been taken.',
76 | 'url' => 'The :attribute format is invalid.',
77 |
78 | /*
79 | |--------------------------------------------------------------------------
80 | | Custom Validation Language Lines
81 | |--------------------------------------------------------------------------
82 | |
83 | | Here you may specify custom validation messages for attributes using the
84 | | convention "attribute.rule" to name the lines. This makes it quick to
85 | | specify a specific custom language line for a given attribute rule.
86 | |
87 | */
88 |
89 | 'custom' => [
90 | 'attribute-name' => [
91 | 'rule-name' => 'custom-message',
92 | ],
93 | ],
94 |
95 | /*
96 | |--------------------------------------------------------------------------
97 | | Custom Validation Attributes
98 | |--------------------------------------------------------------------------
99 | |
100 | | The following language lines are used to swap attribute place-holders
101 | | with something more reader friendly such as E-Mail Address instead
102 | | of "email". This simply helps us make messages a little cleaner.
103 | |
104 | */
105 |
106 | 'attributes' => [],
107 |
108 | ];
109 |
--------------------------------------------------------------------------------
/resources/views/contacts.blade.php:
--------------------------------------------------------------------------------
1 |
2 |
3 | Laravel
4 |
5 |
6 |
7 |
31 |
32 |
33 |
34 |
35 |
36 | PHP-Laravel-Mysql-Sample 示例
37 |
38 |
39 | 通讯录
40 |
41 |
42 | # |
43 | 姓名 |
44 | 电话 |
45 | 操作 |
46 |
47 |
48 |
49 | @foreach ($contacts as $index => $contact)
50 |
51 | {{$index + 1}} |
52 | {{$contact->name}} |
53 | {{$contact->phone}} |
54 | 删除 |
55 |
56 | @endforeach
57 |
58 |
59 |
60 |
73 |
74 |
75 |
76 |
77 |
--------------------------------------------------------------------------------
/resources/views/errors/503.blade.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Be right back.
5 |
6 |
7 |
8 |
39 |
40 |
41 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/resources/views/welcome.blade.php:
--------------------------------------------------------------------------------
1 |
2 |
3 | Laravel
4 |
5 |
6 |
7 |
39 |
40 |
41 |
42 |
43 |
Laravel 5
44 |
{{ Inspiring::quote() }}
45 |
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/server.php:
--------------------------------------------------------------------------------
1 |
8 | */
9 |
10 | $uri = urldecode(
11 | parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)
12 | );
13 |
14 | // This file allows us to emulate Apache's "mod_rewrite" functionality from the
15 | // built-in PHP web server. This provides a convenient way to test a Laravel
16 | // application without having installed a "real" web server software here.
17 | if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) {
18 | return false;
19 | }
20 |
21 | require_once __DIR__.'/public/index.php';
22 |
--------------------------------------------------------------------------------
/storage/app/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
--------------------------------------------------------------------------------
/storage/framework/.gitignore:
--------------------------------------------------------------------------------
1 | config.php
2 | routes.php
3 | compiled.php
4 | services.json
5 | events.scanned.php
6 | routes.scanned.php
7 | down
8 |
--------------------------------------------------------------------------------
/storage/framework/cache/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
--------------------------------------------------------------------------------
/storage/framework/sessions/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
3 |
--------------------------------------------------------------------------------
/storage/framework/views/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
3 |
--------------------------------------------------------------------------------
/storage/logs/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
3 |
--------------------------------------------------------------------------------
/tests/ExampleTest.php:
--------------------------------------------------------------------------------
1 | visit('/')
17 | ->see('Laravel 5');
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/tests/TestCase.php:
--------------------------------------------------------------------------------
1 | make(Illuminate\Contracts\Console\Kernel::class)->bootstrap();
22 |
23 | return $app;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------