Initial commit with basic structure
This commit is contained in:
45
.gitignore
vendored
Normal file
45
.gitignore
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
/vendor/
|
||||
# Cache and logs (Symfony2)
|
||||
/app/cache/*
|
||||
/app/logs/*
|
||||
!app/cache/.gitkeep
|
||||
!app/logs/.gitkeep
|
||||
|
||||
# Email spool folder
|
||||
/app/spool/*
|
||||
|
||||
# Cache, session files and logs (Symfony3)
|
||||
/var/cache/*
|
||||
/var/logs/*
|
||||
/var/sessions/*
|
||||
!var/cache/.gitkeep
|
||||
!var/logs/.gitkeep
|
||||
!var/sessions/.gitkeep
|
||||
|
||||
# Parameters
|
||||
/app/config/parameters.yml
|
||||
/app/config/parameters.ini
|
||||
|
||||
# Managed by Composer
|
||||
/app/bootstrap.php.cache
|
||||
/var/bootstrap.php.cache
|
||||
/bin/*
|
||||
!bin/console
|
||||
!bin/symfony_requirements
|
||||
|
||||
# Assets and user uploads
|
||||
/web/bundles/
|
||||
/web/uploads/
|
||||
|
||||
# PHPUnit
|
||||
/app/phpunit.xml
|
||||
/phpunit.xml
|
||||
|
||||
# Build data
|
||||
/build/
|
||||
|
||||
# Backup entities generated with doctrine:generate:entities command
|
||||
**/Entity/*~
|
||||
|
||||
# Embedded web-server pid file
|
||||
/.web-server-pid
|
||||
19
LICENSE
Normal file
19
LICENSE
Normal file
@@ -0,0 +1,19 @@
|
||||
Copyright (c) 2010-2017 Fabien Potencier
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is furnished
|
||||
to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
77
README.rst
Normal file
77
README.rst
Normal file
@@ -0,0 +1,77 @@
|
||||
Silex Skeleton
|
||||
==============
|
||||
|
||||
Welcome to the Silex Skeleton - a fully-functional Silex application that you
|
||||
can use as the skeleton for your new applications.
|
||||
|
||||
This document contains information on how to start using the Silex Skeleton.
|
||||
|
||||
Creating a Silex Application
|
||||
----------------------------
|
||||
|
||||
Silex uses `Composer`_ to ease the creation of a new project:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ composer create-project fabpot/silex-skeleton path/to/install "~2.0"
|
||||
|
||||
Composer will create a new Silex project under the `path/to/install` directory.
|
||||
|
||||
Browsing the Demo Application
|
||||
-----------------------------
|
||||
|
||||
Congratulations! You're now ready to use Silex.
|
||||
|
||||
To see a real-live Silex page in action, start the PHP built-in web server with
|
||||
command:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ cd path/to/install
|
||||
$ COMPOSER_PROCESS_TIMEOUT=0 composer run
|
||||
|
||||
Then, browse to http://localhost:8888/index_dev.php/
|
||||
|
||||
Getting started with Silex
|
||||
--------------------------
|
||||
|
||||
This distribution is meant to be the starting point for your Silex applications.
|
||||
|
||||
A great way to start learning Silex is via the `Documentation`_, which will
|
||||
take you through all the features of Silex.
|
||||
|
||||
What's inside?
|
||||
---------------
|
||||
|
||||
The Silex Skeleton is configured with the following service providers:
|
||||
|
||||
* `ValidatorServiceProvider`_ - Provides a service for validating data. It is
|
||||
most useful when used with the FormServiceProvider, but can also be used
|
||||
standalone.
|
||||
|
||||
* `ServiceControllerServiceProvider`_ - As your Silex application grows, you
|
||||
may wish to begin organizing your controllers in a more formal fashion.
|
||||
Silex can use controller classes out of the box, but with a bit of work,
|
||||
your controllers can be created as services, giving you the full power of
|
||||
dependency injection and lazy loading.
|
||||
|
||||
* `TwigServiceProvider`_ - Provides integration with the Twig template engine.
|
||||
|
||||
* `WebProfilerServiceProvider`_ - Enable the Symfony web debug toolbar and
|
||||
the Symfony profiler in your Silex application when developing.
|
||||
|
||||
* `MonologServiceProvider`_ - Enable logging in the development environment.
|
||||
|
||||
Read the `Providers`_ documentation for more details about Silex Service
|
||||
Providers.
|
||||
|
||||
Enjoy!
|
||||
|
||||
.. _Composer: http://getcomposer.org/
|
||||
.. _Documentation: http://silex.sensiolabs.org/documentation
|
||||
.. _ValidatorServiceProvider: http://silex.sensiolabs.org/doc/master/providers/validator.html
|
||||
.. _ServiceControllerServiceProvider: http://silex.sensiolabs.org/doc/master/providers/service_controller.html
|
||||
.. _TwigServiceProvider: http://silex.sensiolabs.org/doc/master/providers/twig.html
|
||||
.. _WebProfilerServiceProvider: http://github.com/silexphp/Silex-WebProfiler
|
||||
.. _MonologServiceProvider: http://silex.sensiolabs.org/doc/master/providers/monolog.html
|
||||
.. _Providers: http://silex.sensiolabs.org/doc/providers.html
|
||||
16
bin/console
Executable file
16
bin/console
Executable file
@@ -0,0 +1,16 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
require_once __DIR__.'/../vendor/autoload.php';
|
||||
|
||||
set_time_limit(0);
|
||||
|
||||
use Symfony\Component\Console\Input\ArgvInput;
|
||||
|
||||
$input = new ArgvInput();
|
||||
$env = $input->getParameterOption(array('--env', '-e'), getenv('SYMFONY_ENV') ?: 'dev');
|
||||
|
||||
$app = require __DIR__.'/../src/app.php';
|
||||
require __DIR__.'/../config/'.$env.'.php';
|
||||
$console = require __DIR__.'/../src/console.php';
|
||||
$console->run();
|
||||
41
composer.json
Normal file
41
composer.json
Normal file
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"name": "fabpot/silex-skeleton",
|
||||
"description": "A pre-configured skeleton for the Silex microframework",
|
||||
"license": "MIT",
|
||||
"type": "project",
|
||||
"require": {
|
||||
"php": ">=5.5.9",
|
||||
"silex/silex": "~2.0",
|
||||
"silex/web-profiler": "~2.0",
|
||||
"symfony/asset": "~2.8|^3.0",
|
||||
"symfony/browser-kit": "~2.8|^3.0",
|
||||
"symfony/class-loader": "~2.8|^3.0",
|
||||
"symfony/config": "~2.8|^3.0",
|
||||
"symfony/console": "~2.8|^3.0",
|
||||
"symfony/css-selector": "~2.8|^3.0",
|
||||
"symfony/debug": "~2.8|^3.0",
|
||||
"symfony/finder": "~2.8|^3.0",
|
||||
"symfony/form": "~2.8|^3.0",
|
||||
"symfony/monolog-bridge": "~2.8|^3.0",
|
||||
"symfony/process": "~2.8|^3.0",
|
||||
"symfony/security": "~2.8|^3.0",
|
||||
"symfony/translation": "~2.8|^3.0",
|
||||
"symfony/twig-bridge": "~2.8|^3.0",
|
||||
"symfony/validator": "~2.8|^3.0",
|
||||
"doctrine/dbal": "~2.2"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": { "": "src/" }
|
||||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.0.x-dev"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"run": [
|
||||
"echo 'Started web server on http://localhost:8888'",
|
||||
"php -S localhost:8888 -t web"
|
||||
]
|
||||
}
|
||||
}
|
||||
3038
composer.lock
generated
Normal file
3038
composer.lock
generated
Normal file
File diff suppressed because it is too large
Load Diff
18
config/dev.php
Normal file
18
config/dev.php
Normal file
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
use Silex\Provider\MonologServiceProvider;
|
||||
use Silex\Provider\WebProfilerServiceProvider;
|
||||
|
||||
// include the prod configuration
|
||||
require __DIR__.'/prod.php';
|
||||
|
||||
// enable the debug mode
|
||||
$app['debug'] = true;
|
||||
|
||||
$app->register(new MonologServiceProvider(), array(
|
||||
'monolog.logfile' => __DIR__.'/../var/logs/silex_dev.log',
|
||||
));
|
||||
|
||||
$app->register(new WebProfilerServiceProvider(), array(
|
||||
'profiler.cache_dir' => __DIR__.'/../var/cache/profiler',
|
||||
));
|
||||
7
config/prod.php
Normal file
7
config/prod.php
Normal file
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
// configure your app for the production environment
|
||||
|
||||
$app['twig.path'] = array(__DIR__.'/../templates');
|
||||
$app['twig.options'] = array('cache' => __DIR__.'/../var/cache/twig');
|
||||
$app['db_config'] = array('path' => '/home/backisbachus/gw2/stats.db', 'records_table' => 'records', 'diff_table' => 'diff');
|
||||
23
phpunit.xml.dist
Normal file
23
phpunit.xml.dist
Normal file
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!-- https://phpunit.de/manual/current/en/appendixes.configuration.html -->
|
||||
<phpunit
|
||||
backupGlobals = "false"
|
||||
backupStaticAttributes = "false"
|
||||
colors = "true"
|
||||
convertErrorsToExceptions = "true"
|
||||
convertNoticesToExceptions = "true"
|
||||
convertWarningsToExceptions = "true"
|
||||
processIsolation = "false"
|
||||
stopOnFailure = "false"
|
||||
syntaxCheck = "false"
|
||||
bootstrap = "vendor/autoload.php">
|
||||
|
||||
<testsuites>
|
||||
<testsuite name="Test Suite">
|
||||
<directory>src/</directory>
|
||||
<directory>tests/</directory>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
|
||||
</phpunit>
|
||||
37
src/app.php
Normal file
37
src/app.php
Normal file
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
use Silex\Application;
|
||||
use Silex\Provider\AssetServiceProvider;
|
||||
use Silex\Provider\TwigServiceProvider;
|
||||
use Silex\Provider\ServiceControllerServiceProvider;
|
||||
use Silex\Provider\HttpFragmentServiceProvider;
|
||||
|
||||
$app = new Application();
|
||||
$app->register(new ServiceControllerServiceProvider());
|
||||
$app->register(new AssetServiceProvider());
|
||||
$app->register(new TwigServiceProvider());
|
||||
$app->register(new HttpFragmentServiceProvider());
|
||||
$app['twig'] = $app->extend('twig', function ($twig, $app) {
|
||||
// add custom globals, filters, tags, ...
|
||||
|
||||
$displayRatio = new Twig_Function('displayRatio', function($k, $d) {
|
||||
$out = "<span class='hint--rounded hint--top' ";
|
||||
if($d == 0) {
|
||||
$s = ($k>1)?"s":"";
|
||||
$out .= "aria-label='0 death'>".$k." kill".$s;
|
||||
} else if($k == 0) {
|
||||
$s = ($d>1)?"s":"";
|
||||
$out .= "aria-label='0 kill'>".$d." death".$s;
|
||||
} else {
|
||||
$sk = ($k>1)?"s":"";
|
||||
$sd = ($d>1)?"s":"";
|
||||
$out .= "aria-label='".$k." kill".$sk." | ".$d." death".$sd."'>".round($k/$d, 2);
|
||||
}
|
||||
$out .= "</span>";
|
||||
return $out;
|
||||
});
|
||||
$twig->addFunction($displayRatio);
|
||||
return $twig;
|
||||
});
|
||||
|
||||
return $app;
|
||||
23
src/console.php
Normal file
23
src/console.php
Normal file
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
use Symfony\Component\Console\Application;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Console\Input\InputArgument;
|
||||
use Symfony\Component\Console\Input\InputOption;
|
||||
|
||||
$console = new Application('My Silex Application', 'n/a');
|
||||
$console->getDefinition()->addOption(new InputOption('--env', '-e', InputOption::VALUE_REQUIRED, 'The Environment name.', 'dev'));
|
||||
$console->setDispatcher($app['dispatcher']);
|
||||
$console
|
||||
->register('my-command')
|
||||
->setDefinition(array(
|
||||
// new InputOption('some-option', null, InputOption::VALUE_NONE, 'Some help'),
|
||||
))
|
||||
->setDescription('My command description')
|
||||
->setCode(function (InputInterface $input, OutputInterface $output) use ($app) {
|
||||
// do something
|
||||
})
|
||||
;
|
||||
|
||||
return $console;
|
||||
39
src/controllers.php
Normal file
39
src/controllers.php
Normal file
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||
use Symfony\Component\HttpFoundation\RedirectResponse;
|
||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||
|
||||
//Request::setTrustedProxies(array('127.0.0.1'));
|
||||
|
||||
$app->get('/', function () use ($app) {
|
||||
$app->register(new Silex\Provider\DoctrineServiceProvider(), array(
|
||||
'db.options' => array(
|
||||
'driver' => 'pdo_sqlite',
|
||||
'path' => $app['db_config']['path'],
|
||||
),
|
||||
));
|
||||
$sql = "SELECT * FROM ".$app['db_config']['diff_table']."";
|
||||
$diffs = $app['db']->fetchAll($sql);
|
||||
return $app['twig']->render('index.html.twig', array("diffs" => $diffs));
|
||||
})
|
||||
->bind('homepage')
|
||||
;
|
||||
|
||||
$app->error(function (\Exception $e, Request $request, $code) use ($app) {
|
||||
if ($app['debug']) {
|
||||
return;
|
||||
}
|
||||
|
||||
// 404.html, or 40x.html, or 4xx.html, or error.html
|
||||
$templates = array(
|
||||
'errors/'.$code.'.html.twig',
|
||||
'errors/'.substr($code, 0, 2).'x.html.twig',
|
||||
'errors/'.substr($code, 0, 1).'xx.html.twig',
|
||||
'errors/default.html.twig',
|
||||
);
|
||||
|
||||
return new Response($app['twig']->resolveTemplate($templates)->render(array('code' => $code)), $code);
|
||||
});
|
||||
5
templates/errors/404.html.twig
Normal file
5
templates/errors/404.html.twig
Normal file
@@ -0,0 +1,5 @@
|
||||
{% extends "layout.html.twig" %}
|
||||
|
||||
{% block content %}
|
||||
Page not found.
|
||||
{% endblock %}
|
||||
5
templates/errors/4xx.html.twig
Normal file
5
templates/errors/4xx.html.twig
Normal file
@@ -0,0 +1,5 @@
|
||||
{% extends "layout.html.twig" %}
|
||||
|
||||
{% block content %}
|
||||
An error occurred on the client.
|
||||
{% endblock %}
|
||||
5
templates/errors/500.html.twig
Normal file
5
templates/errors/500.html.twig
Normal file
@@ -0,0 +1,5 @@
|
||||
{% extends "layout.html.twig" %}
|
||||
|
||||
{% block content %}
|
||||
Internal server error.
|
||||
{% endblock %}
|
||||
5
templates/errors/5xx.html.twig
Normal file
5
templates/errors/5xx.html.twig
Normal file
@@ -0,0 +1,5 @@
|
||||
{% extends "layout.html.twig" %}
|
||||
|
||||
{% block content %}
|
||||
An error occurred on the server.
|
||||
{% endblock %}
|
||||
5
templates/errors/default.html.twig
Normal file
5
templates/errors/default.html.twig
Normal file
@@ -0,0 +1,5 @@
|
||||
{% extends "layout.html.twig" %}
|
||||
|
||||
{% block content %}
|
||||
An error occurred.
|
||||
{% endblock %}
|
||||
55
templates/index.html.twig
Normal file
55
templates/index.html.twig
Normal file
@@ -0,0 +1,55 @@
|
||||
{% extends "layout.html.twig" %}
|
||||
|
||||
{% block content %}
|
||||
<p>
|
||||
|
||||
<table>
|
||||
<col>
|
||||
<colgroup span="3"></colgroup>
|
||||
<colgroup span="3"></colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<td rowpsan="2"></td>
|
||||
<th colspan="3" scope="colgroup">Eternal Battleground</th>
|
||||
<th colspan="3" scope="colgroup">Red Borderland</th>
|
||||
<th colspan="3" scope="colgroup">Blue Borderland</th>
|
||||
<th colspan="3" scope="colgroup">Green Borderland</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="col">Start (CEST)</th>
|
||||
<th scope="col" class="red">Red</th>
|
||||
<th scope="col" class="blue">Blue</th>
|
||||
<th scope="col" class="green">Green</th>
|
||||
<th scope="col" class="red">Red</th>
|
||||
<th scope="col" class="blue">Blue</th>
|
||||
<th scope="col" class="green">Green</th>
|
||||
<th scope="col" class="red">Red</th>
|
||||
<th scope="col" class="blue">Blue</th>
|
||||
<th scope="col" class="green">Green</th>
|
||||
<th scope="col" class="red">Red</th>
|
||||
<th scope="col" class="blue">Blue</th>
|
||||
<th scope="col" class="green">Green</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for diff in diffs %}
|
||||
<tr>
|
||||
<th scope="row">{{diff.start|date("l H:i")}}</th>
|
||||
<td class="red">{{displayRatio(diff.eb_r_k, diff.eb_r_d)|raw}}</td>
|
||||
<td class="blue">{{displayRatio(diff.eb_b_k, diff.eb_b_d)|raw}}</td>
|
||||
<td class="green">{{displayRatio(diff.eb_g_k, diff.eb_g_d)|raw}}</td>
|
||||
<td class="red">{{displayRatio(diff.rh_r_k, diff.rh_r_d)|raw}}</td>
|
||||
<td class="blue">{{displayRatio(diff.rh_b_k, diff.rh_b_d)|raw}}</td>
|
||||
<td class="green">{{displayRatio(diff.rh_g_k, diff.rh_g_d)|raw}}</td>
|
||||
<td class="red">{{displayRatio(diff.bh_r_k, diff.bh_r_d)|raw}}</td>
|
||||
<td class="blue">{{displayRatio(diff.bh_b_k, diff.bh_b_d)|raw}}</td>
|
||||
<td class="green">{{displayRatio(diff.bh_g_k, diff.bh_g_d)|raw}}</td>
|
||||
<td class="red">{{displayRatio(diff.gh_r_k, diff.gh_r_d)|raw}}</td>
|
||||
<td class="blue">{{displayRatio(diff.gh_b_k, diff.gh_b_d)|raw}}</td>
|
||||
<td class="green">{{displayRatio(diff.gh_g_k, diff.gh_g_d)|raw}}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</p>
|
||||
{% endblock %}
|
||||
15
templates/layout.html.twig
Normal file
15
templates/layout.html.twig
Normal file
@@ -0,0 +1,15 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>{% block title '' %}WvW skimrish stats</title>
|
||||
|
||||
<link href="{{ asset('css/main.css') }}" rel="stylesheet" type="text/css" />
|
||||
<link href="{{ asset('css/hint.min.css') }}" rel="stylesheet" type="text/css" />
|
||||
|
||||
<script type="text/javascript">
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
{% block content %}{% endblock %}
|
||||
</body>
|
||||
</html>
|
||||
26
tests/controllersTest.php
Normal file
26
tests/controllersTest.php
Normal file
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
use Silex\WebTestCase;
|
||||
|
||||
class controllersTest extends WebTestCase
|
||||
{
|
||||
public function testGetHomepage()
|
||||
{
|
||||
$client = $this->createClient();
|
||||
$client->followRedirects(true);
|
||||
$crawler = $client->request('GET', '/');
|
||||
|
||||
$this->assertTrue($client->getResponse()->isOk());
|
||||
$this->assertContains('Welcome', $crawler->filter('body')->text());
|
||||
}
|
||||
|
||||
public function createApplication()
|
||||
{
|
||||
$app = require __DIR__.'/../src/app.php';
|
||||
require __DIR__.'/../config/dev.php';
|
||||
require __DIR__.'/../src/controllers.php';
|
||||
$app['session.test'] = true;
|
||||
|
||||
return $this->app = $app;
|
||||
}
|
||||
}
|
||||
2
var/cache/.gitignore
vendored
Normal file
2
var/cache/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
*
|
||||
!.gitignore
|
||||
2
var/logs/.gitignore
vendored
Normal file
2
var/logs/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
*
|
||||
!.gitignore
|
||||
5
web/css/hint.min.css
vendored
Normal file
5
web/css/hint.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
39
web/css/main.css
Normal file
39
web/css/main.css
Normal file
@@ -0,0 +1,39 @@
|
||||
html { height: 100%;}
|
||||
|
||||
body {
|
||||
font: 14px/1.8em 'Open Sans', Helvetica, Arial, Helvetica, sans-serif;
|
||||
color: #444;
|
||||
background #fff;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
border: thick solid;
|
||||
}
|
||||
|
||||
td {
|
||||
vertical-align: top;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
td, th {
|
||||
border: solid 1px #222;
|
||||
padding: 0.25em 0.5em;
|
||||
}
|
||||
|
||||
th {
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
background: #eee;
|
||||
}
|
||||
|
||||
.red {background-color:rgba(255,0,0,0.25);}
|
||||
.blue {background-color:rgba(0,0,255,0.25);}
|
||||
.green {background-color:rgba(0,255,0,0.25);}
|
||||
|
||||
thead {
|
||||
border: thick solid;
|
||||
}
|
||||
13
web/index.php
Normal file
13
web/index.php
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
ini_set('display_errors', 0);
|
||||
|
||||
require_once __DIR__.'/../vendor/autoload.php';
|
||||
|
||||
$app = require __DIR__.'/../src/app.php';
|
||||
require __DIR__.'/../config/prod.php';
|
||||
require __DIR__.'/../src/controllers.php';
|
||||
|
||||
$app['debug'] = true;
|
||||
|
||||
$app->run();
|
||||
22
web/index_dev.php
Normal file
22
web/index_dev.php
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
use Symfony\Component\Debug\Debug;
|
||||
|
||||
// This check prevents access to debug front controllers that are deployed by accident to production servers.
|
||||
// Feel free to remove this, extend it, or make something more sophisticated.
|
||||
if (isset($_SERVER['HTTP_CLIENT_IP'])
|
||||
|| isset($_SERVER['HTTP_X_FORWARDED_FOR'])
|
||||
|| !in_array(@$_SERVER['REMOTE_ADDR'], array('127.0.0.1', 'fe80::1', '::1'))
|
||||
) {
|
||||
header('HTTP/1.0 403 Forbidden');
|
||||
exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');
|
||||
}
|
||||
|
||||
require_once __DIR__.'/../vendor/autoload.php';
|
||||
|
||||
Debug::enable();
|
||||
|
||||
$app = require __DIR__.'/../src/app.php';
|
||||
require __DIR__.'/../config/dev.php';
|
||||
require __DIR__.'/../src/controllers.php';
|
||||
$app->run();
|
||||
Reference in New Issue
Block a user