View

Large diffs are not rendered by default.

Oops, something went wrong.
View
@@ -0,0 +1,14 @@
<?php
use Doctrine\Common\Annotations\AnnotationRegistry;
$loader = require __DIR__.'/../vendor/autoload.php';
// intl
if (!function_exists('intl_get_error_code')) {
require_once __DIR__.'/../vendor/symfony/symfony/src/Symfony/Component/Locale/Resources/stubs/functions.php';
}
AnnotationRegistry::registerLoader(array($loader, 'loadClass'));
return $loader;
View
@@ -0,0 +1,55 @@
<?php
require_once dirname(__FILE__).'/SymfonyRequirements.php';
$symfonyRequirements = new SymfonyRequirements();
$iniPath = $symfonyRequirements->getPhpIniConfigPath();
echo "********************************\n";
echo "* *\n";
echo "* Symfony requirements check *\n";
echo "* *\n";
echo "********************************\n\n";
echo $iniPath ? sprintf("* Configuration file used by PHP: %s\n\n", $iniPath) : "* WARNING: No configuration file (php.ini) used by PHP!\n\n";
echo "** ATTENTION **\n";
echo "* The PHP CLI can use a different php.ini file\n";
echo "* than the one used with your web server.\n";
if ('\\' == DIRECTORY_SEPARATOR) {
echo "* (especially on the Windows platform)\n";
}
echo "* To be on the safe side, please also launch the requirements check\n";
echo "* from your web server using the web/config.php script.\n";
echo_title('Mandatory requirements');
foreach ($symfonyRequirements->getRequirements() as $req) {
echo_requirement($req);
}
echo_title('Optional recommendations');
foreach ($symfonyRequirements->getRecommendations() as $req) {
echo_requirement($req);
}
/**
* Prints a Requirement instance
*/
function echo_requirement(Requirement $requirement)
{
$result = $requirement->isFulfilled() ? 'OK' : ($requirement->isOptional() ? 'WARNING' : 'ERROR');
echo ' ' . str_pad($result, 9);
echo $requirement->getTestMessage() . "\n";
if (!$requirement->isFulfilled()) {
echo sprintf(" %s\n\n", $requirement->getHelpText());
}
}
function echo_title($title)
{
echo "\n** $title **\n\n";
}
View
@@ -0,0 +1,65 @@
imports:
- { resource: parameters.yml }
- { resource: security.yml }
framework:
#esi: ~
#translator: { fallback: %locale% }
secret: %secret%
router:
resource: "%kernel.root_dir%/config/routing.yml"
strict_requirements: %kernel.debug%
form: ~
csrf_protection: ~
validation: { enable_annotations: true }
templating:
engines: ['twig', 'php']
#assets_version: SomeVersionScheme
default_locale: "%locale%"
trusted_proxies: ~
session: ~
fragments: ~
# Twig Configuration
twig:
debug: %kernel.debug%
strict_variables: %kernel.debug%
# Assetic Configuration
assetic:
debug: %kernel.debug%
use_controller: false
bundles: [ ]
#java: /usr/bin/java
filters:
cssrewrite: ~
#closure:
# jar: %kernel.root_dir%/Resources/java/compiler.jar
#yui_css:
# jar: %kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar
# Doctrine Configuration
doctrine:
dbal:
driver: %database_driver%
host: %database_host%
port: %database_port%
dbname: %database_name%
user: %database_user%
password: %database_password%
charset: UTF8
# if using pdo_sqlite as your database driver, add the path in parameters.yml
# e.g. database_path: %kernel.root_dir%/data/data.db3
# path: %database_path%
orm:
auto_generate_proxy_classes: %kernel.debug%
auto_mapping: true
# Swiftmailer Configuration
swiftmailer:
transport: %mailer_transport%
host: %mailer_host%
username: %mailer_user%
password: %mailer_password%
spool: { type: memory }
View
@@ -0,0 +1,29 @@
imports:
- { resource: config.yml }
framework:
router: { resource: "%kernel.root_dir%/config/routing_dev.yml" }
profiler: { only_exceptions: false }
web_profiler:
toolbar: true
intercept_redirects: false
monolog:
handlers:
main:
type: stream
path: %kernel.logs_dir%/%kernel.environment%.log
level: debug
firephp:
type: firephp
level: info
chromephp:
type: chromephp
level: info
assetic:
use_controller: true
#swiftmailer:
# delivery_address: me@example.com
View
@@ -0,0 +1,29 @@
imports:
- { resource: config.yml }
# In production environment you should know that the parameters for URL generation
# always pass the requirements. Otherwise it would break your link (or even site with
# strict_requirements = true). So we can disable the requirements check completely for
# enhanced performance with strict_requirements = null.
framework:
router:
strict_requirements: null
# validation:
# cache: apc
doctrine:
orm:
# metadata_cache_driver: redis
# result_cache_driver: apc
# query_cache_driver: redis
monolog:
handlers:
main:
type: fingers_crossed
action_level: error
handler: nested
nested:
type: stream
path: %kernel.logs_dir%/%kernel.environment%.log
level: debug
View
@@ -0,0 +1,16 @@
imports:
- { resource: config_dev.yml }
framework:
test: ~
session:
storage_id: session.storage.mock_file
profiler:
enabled: false
web_profiler:
toolbar: false
intercept_redirects: false
swiftmailer:
disable_delivery: true
View
@@ -0,0 +1,14 @@
parameters:
database_driver: pdo_mysql
database_host: 127.0.0.1
database_port: null
database_name: hello_world
database_user: benchmarkdbuser
database_password: benchmarkdbpass
mailer_transport: smtp
mailer_host: 127.0.0.1
mailer_user: null
mailer_password: null
locale: en
secret: 2d50e353f5d24683c46e298ec0aead14
database_path: null
View
@@ -0,0 +1,23 @@
_json:
pattern: /json
defaults: { _controller: SkamanderBenchmarkBundle:Bench:json }
_db:
pattern: /db
defaults: { _controller: SkamanderBenchmarkBundle:Bench:db }
_dbRaw:
pattern: /db-raw
defaults: { _controller: SkamanderBenchmarkBundle:Bench:dbRaw }
_fortunes:
pattern: /fortunes
defaults: { _controller: SkamanderBenchmarkBundle:Bench:fortunes }
_fortunesPhp:
pattern: /fortunes-php
defaults: { _controller: SkamanderBenchmarkBundle:Bench:fortunesPhp }
_fortunesRaw:
pattern: /fortunes-raw
defaults: { _controller: SkamanderBenchmarkBundle:Bench:fortunesRaw }
View
@@ -0,0 +1,27 @@
_welcome:
pattern: /
defaults: { _controller: AcmeDemoBundle:Welcome:index }
_demo_secured:
resource: "@AcmeDemoBundle/Controller/SecuredController.php"
type: annotation
_demo:
resource: "@AcmeDemoBundle/Controller/DemoController.php"
type: annotation
prefix: /demo
_wdt:
resource: "@WebProfilerBundle/Resources/config/routing/wdt.xml"
prefix: /_wdt
_profiler:
resource: "@WebProfilerBundle/Resources/config/routing/profiler.xml"
prefix: /_profiler
_configurator:
resource: "@SensioDistributionBundle/Resources/config/routing/webconfigurator.xml"
prefix: /_configurator
_main:
resource: routing.yml
View
@@ -0,0 +1,42 @@
jms_security_extra:
secure_all_services: false
expressions: true
security:
encoders:
Symfony\Component\Security\Core\User\User: plaintext
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
providers:
in_memory:
memory:
users:
user: { password: userpass, roles: [ 'ROLE_USER' ] }
admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] }
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
login:
pattern: ^/demo/secured/login$
security: false
secured_area:
pattern: ^/demo/secured/
form_login:
check_path: _security_check
login_path: _demo_login
logout:
path: _demo_logout
target: _demo
#anonymous: ~
#http_basic:
# realm: "Secured Demo Area"
access_control:
#- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
View
@@ -0,0 +1,22 @@
#!/usr/bin/env php
<?php
// if you don't want to setup permissions the proper way, just uncomment the following PHP line
// read http://symfony.com/doc/current/book/installation.html#configuration-and-setup for more information
//umask(0000);
set_time_limit(0);
require_once __DIR__.'/bootstrap.php.cache';
require_once __DIR__.'/AppKernel.php';
use Symfony\Bundle\FrameworkBundle\Console\Application;
use Symfony\Component\Console\Input\ArgvInput;
$input = new ArgvInput();
$env = $input->getParameterOption(array('--env', '-e'), getenv('SYMFONY_ENV') ?: 'dev');
$debug = getenv('SYMFONY_DEBUG') !== '0' && !$input->hasParameterOption(array('--no-debug', '')) && $env !== 'prod';
$kernel = new AppKernel($env, $debug);
$application = new Application($kernel);
$application->run($input);
View
@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- http://www.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 = "bootstrap.php.cache" >
<testsuites>
<testsuite name="Project Test Suite">
<directory>../src/*/*Bundle/Tests</directory>
<directory>../src/*/Bundle/*Bundle/Tests</directory>
</testsuite>
</testsuites>
<!--
<php>
<server name="KERNEL_DIR" value="/path/to/your/app/" />
</php>
-->
<filter>
<whitelist>
<directory>../src</directory>
<exclude>
<directory>../src/*/*Bundle/Resources</directory>
<directory>../src/*/*Bundle/Tests</directory>
<directory>../src/*/Bundle/*Bundle/Resources</directory>
<directory>../src/*/Bundle/*Bundle/Tests</directory>
</exclude>
</whitelist>
</filter>
</phpunit>
View
@@ -0,0 +1,64 @@
{
"framework": "symfony2_hhvm",
"tests": [{
"default": {
"setup_file": "setup_hhvm",
"json_url": "/json",
"db_url": "/db",
"query_url": "/db?queries=",
"fortune_url": "/fortunes",
"port": 8080,
"approach": "Realistic",
"classification": "Fullstack",
"database": "MySQL",
"framework": "symfony2",
"language": "PHP",
"orm": "Full",
"platform": "PHP-FPM",
"webserver": "nginx",
"os": "Linux",
"database_os": "Linux",
"display_name": "symfony2",
"notes": "",
"versus": "php"
},
"php-templates": {
"setup_file": "setup_hhvm",
"fortune_url": "/fortunes-php",
"port": 8080,
"approach": "Realistic",
"classification": "Fullstack",
"database": "MySQL",
"framework": "symfony2",
"language": "PHP",
"orm": "Full",
"platform": "PHP-FPM",
"webserver": "nginx",
"os": "Linux",
"database_os": "Linux",
"display_name": "symfony2",
"notes": "",
"versus": "php"
},
"raw": {
"setup_file": "setup_hhvm",
"db_url": "/db-raw",
"query_url": "/db-raw?queries=",
"fortune_url": "/fortunes-raw",
"port": 8080,
"approach": "Realistic",
"classification": "Fullstack",
"database": "MySQL",
"framework": "symfony2",
"language": "PHP",
"orm": "Raw",
"platform": "PHP-FPM",
"webserver": "nginx",
"os": "Linux",
"database_os": "Linux",
"display_name": "symfony2",
"notes": "",
"versus": "php"
}
}]
}
View
@@ -0,0 +1,47 @@
{
"name": "symfony/framework-standard-edition",
"description": "The \"Symfony Standard Edition\" distribution",
"autoload": {
"psr-0": { "": "src/" }
},
"require": {
"php": ">=5.3.3",
"symfony/symfony": "2.2.*",
"doctrine/orm": "~2.2,>=2.2.3",
"doctrine/doctrine-bundle": "1.2.*",
"twig/extensions": "1.0.*",
"symfony/assetic-bundle": "2.1.*",
"symfony/swiftmailer-bundle": "2.2.*",
"symfony/monolog-bundle": "2.2.*",
"sensio/distribution-bundle": "2.2.*",
"sensio/framework-extra-bundle": "2.2.*",
"sensio/generator-bundle": "2.2.*",
"jms/security-extra-bundle": "1.4.*",
"jms/di-extra-bundle": "1.3.*"
},
"scripts": {
"post-install-cmd": [
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
],
"post-update-cmd": [
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
]
},
"config": {
"bin-dir": "bin"
},
"minimum-stability": "alpha",
"extra": {
"symfony-app-dir": "app",
"symfony-web-dir": "web",
"branch-alias": {
"dev-master": "2.2-dev"
}
}
}
View
@@ -0,0 +1,47 @@
# main configuration file
# Application PID File
PidFile = /home/vagrant/FrameworkBenchmarks/frameworks/PHP/symfony2_hhvm/hhvm.pid
# Server settings
Server {
Port = 9001
Type = fastcgi
SourceRoot = /home/vagrant/FrameworkBenchmarks/frameworks/PHP/symfony2_hhvm
DefaultDocument = index.php
}
# Disable logging completely
Log {
UseLogFile = false
UseSyslog = false
Level = Error
#File = /home/vagrant/FrameworkBenchmarks/frameworks/PHP/symfony2_hhvm/error.log
}
# Enable jit for production mode
Eval {
Jit = true
CheckSymLink = false
}
# Repo file
Repo {
Central {
Path = /home/vagrant/FrameworkBenchmarks/frameworks/PHP/symfony2_hhvm/.hhvm.bbhc
}
}
# Setup basic rewrite
VirtualHost {
* {
Pattern = .*
RewriteRules {
* {
pattern = ^(.*)$
to = $1.php
qsa = true
}
}
}
}
View
@@ -0,0 +1,133 @@
#user nobody;
worker_processes 8;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
error_log stderr error;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include /home/vagrant/FrameworkBenchmarks/installs/nginx/conf/mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
access_log off;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
upstream fastcgi_backend {
server 127.0.0.1:9001;
keepalive 32;
}
server {
listen 8080;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
#location / {
# root html;
# index index.html index.htm;
#}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
#error_page 500 502 503 504 /50x.html;
#location = /50x.html {
# root html;
#}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
root /home/vagrant/FrameworkBenchmarks/frameworks/PHP/symfony2_hhvm/web/;
index app.php;
location / {
try_files $uri $uri/ /app.php?$uri&$args;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass fastcgi_backend;
fastcgi_keep_conn on;
fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /home/vagrant/FrameworkBenchmarks/installs/nginx/conf/fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443;
# server_name localhost;
# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_timeout 5m;
# ssl_protocols SSLv2 SSLv3 TLSv1;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
View
@@ -0,0 +1 @@
19724
View
@@ -0,0 +1,9 @@
<VirtualHost *:8080>
Alias /php-symfony2_hhvm/ "/home/ubuntu/FrameworkBenchmarks/php-symfony2_hhvm/web/"
<Directory /home/ubuntu/FrameworkBenchmarks/php-symfony2_hhvm/web/>
Options Indexes FollowSymLinks MultiViews
#AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>
View
@@ -0,0 +1 @@
26599
View
@@ -0,0 +1,12 @@
#!/bin/bash
export PHP_HOME=${IROOT}/php-5.5.17
export COMPOSER_HOME=${IROOT}/php-composer
export PHP_FPM=${PHP_HOME}/sbin/php-fpm
export NGINX_HOME=${IROOT}/nginx
fw_depends php nginx composer hhvm
${PHP_HOME}/bin/php ${COMPOSER_HOME}/composer.phar install \
--no-interaction --working-dir $TROOT \
--no-progress --optimize-autoloader
View
@@ -0,0 +1,21 @@
#!/bin/bash
export PHP_HOME=${IROOT}/php-5.5.17
export COMPOSER_HOME=${IROOT}/php-composer
export PHP_FPM=${PHP_HOME}/sbin/php-fpm
export NGINX_HOME=${IROOT}/nginx
sed -i 's|database_host: .*|database_host: '"${DBHOST}"'|g' app/config/parameters.yml
sed -i 's|SourceRoot = .*/FrameworkBenchmarks/symfony2_hhvm|SourceRoot = '"${TROOT}"'|g' deploy/config.hdf
sed -i 's|Path = .*/.hhvm.hhbc|Path = '"${TROOT}"'/.hhvm.bbhc|g' deploy/config.hdf
sed -i 's|PidFile = .*/hhvm.pid|PidFile = '"${TROOT}"'/hhvm.pid|g' deploy/config.hdf
sed -i 's|File = .*/error.log|File = '"${TROOT}"'/error.log|g' deploy/config.hdf
sed -i 's|root .*/FrameworkBenchmarks/php-symfony2_hhvm| root '"${TROOT}"'|g' deploy/nginx.conf
sed -i 's|/usr/local/nginx/|'"${IROOT}"'/nginx/|g' deploy/nginx.conf
${PHP_HOME}/bin/php app/console cache:clear \
--env=prod --no-debug --no-warmup
${PHP_HOME}/bin/php app/console cache:warmup \
--env=prod --no-debug
hhvm --config $TROOT/deploy/config.hdf --user $(whoami) -m daemon
$NGINX_HOME/sbin/nginx -c $TROOT/deploy/nginx.conf
View
@@ -0,0 +1,114 @@
./php-symfony2_hhvm/app/AppCache.php
./php-symfony2_hhvm/app/AppKernel.php
./php-symfony2_hhvm/app/autoload.php
./php-symfony2_hhvm/app/bootstrap.php.cache
./php-symfony2_hhvm/app/check.php
./php-symfony2_hhvm/app/SymfonyRequirements.php
./php-symfony2_hhvm/app/console
./php-symfony2_hhvm/app/phpunit.xml.dist
./php-symfony2_hhvm/app/Resources/
./php-symfony2_hhvm/app/Resources/views
./php-symfony2_hhvm/app/Resources/views/base.html.twig
./php-symfony2_hhvm/app/Resources/views/base.html.php
./php-symfony2_hhvm/deploy/php-symfony2
./php-symfony2_hhvm/src/
./php-symfony2_hhvm/src/Skamander
./php-symfony2_hhvm/src/Skamander/BenchmarkBundle
./php-symfony2_hhvm/src/Skamander/BenchmarkBundle/SkamanderBenchmarkBundle.php
./php-symfony2_hhvm/src/Skamander/BenchmarkBundle/Entity
./php-symfony2_hhvm/src/Skamander/BenchmarkBundle/Entity/World.php
./php-symfony2_hhvm/src/Skamander/BenchmarkBundle/Entity/Fortune.php
./php-symfony2_hhvm/src/Skamander/BenchmarkBundle/Controller
./php-symfony2_hhvm/src/Skamander/BenchmarkBundle/Controller/BenchController.php
./php-symfony2_hhvm/src/Skamander/BenchmarkBundle/Resources
./php-symfony2_hhvm/src/Skamander/BenchmarkBundle/Resources/views
./php-symfony2_hhvm/src/Skamander/BenchmarkBundle/Resources/views/layout.html.php
./php-symfony2_hhvm/src/Skamander/BenchmarkBundle/Resources/views/layout.html.twig
./php-symfony2_hhvm/src/Skamander/BenchmarkBundle/Resources/views/Bench
./php-symfony2_hhvm/src/Skamander/BenchmarkBundle/Resources/views/Bench/raw
./php-symfony2_hhvm/src/Skamander/BenchmarkBundle/Resources/views/Bench/raw/content.php
./php-symfony2_hhvm/src/Skamander/BenchmarkBundle/Resources/views/Bench/raw/fortunes.php
./php-symfony2_hhvm/src/Skamander/BenchmarkBundle/Resources/views/Bench/raw/template_footer.php
./php-symfony2_hhvm/src/Skamander/BenchmarkBundle/Resources/views/Bench/raw/template_header.php
./php-symfony2_hhvm/src/Skamander/BenchmarkBundle/Resources/views/Bench/fortunes.html.php
./php-symfony2_hhvm/src/Skamander/BenchmarkBundle/Resources/views/Bench/fortunes.html.twig
./php-symfony2_hhvm/src/.htaccess
./php-symfony2_hhvm/src/Acme
./php-symfony2_hhvm/src/Acme/DemoBundle
./php-symfony2_hhvm/src/Acme/DemoBundle/Twig
./php-symfony2_hhvm/src/Acme/DemoBundle/Twig/Extension
./php-symfony2_hhvm/src/Acme/DemoBundle/Twig/Extension/DemoExtension.php
./php-symfony2_hhvm/src/Acme/DemoBundle/DependencyInjection
./php-symfony2_hhvm/src/Acme/DemoBundle/DependencyInjection/AcmeDemoExtension.php
./php-symfony2_hhvm/src/Acme/DemoBundle/AcmeDemoBundle.php
./php-symfony2_hhvm/src/Acme/DemoBundle/EventListener
./php-symfony2_hhvm/src/Acme/DemoBundle/EventListener/ControllerListener.php
./php-symfony2_hhvm/src/Acme/DemoBundle/Controller
./php-symfony2_hhvm/src/Acme/DemoBundle/Controller/DemoController.php
./php-symfony2_hhvm/src/Acme/DemoBundle/Controller/SecuredController.php
./php-symfony2_hhvm/src/Acme/DemoBundle/Controller/WelcomeController.php
./php-symfony2_hhvm/src/Acme/DemoBundle/Resources
./php-symfony2_hhvm/src/Acme/DemoBundle/Resources/public
./php-symfony2_hhvm/src/Acme/DemoBundle/Resources/public/images
./php-symfony2_hhvm/src/Acme/DemoBundle/Resources/public/images/blue-arrow.png
./php-symfony2_hhvm/src/Acme/DemoBundle/Resources/public/images/welcome-configure.gif
./php-symfony2_hhvm/src/Acme/DemoBundle/Resources/public/images/welcome-demo.gif
./php-symfony2_hhvm/src/Acme/DemoBundle/Resources/public/images/search.png
./php-symfony2_hhvm/src/Acme/DemoBundle/Resources/public/images/welcome-quick-tour.gif
./php-symfony2_hhvm/src/Acme/DemoBundle/Resources/public/images/field-background.gif
./php-symfony2_hhvm/src/Acme/DemoBundle/Resources/public/images/logo.gif
./php-symfony2_hhvm/src/Acme/DemoBundle/Resources/public/css
./php-symfony2_hhvm/src/Acme/DemoBundle/Resources/public/css/demo.css
./php-symfony2_hhvm/src/Acme/DemoBundle/Resources/views
./php-symfony2_hhvm/src/Acme/DemoBundle/Resources/views/Secured
./php-symfony2_hhvm/src/Acme/DemoBundle/Resources/views/Secured/hello.html.twig
./php-symfony2_hhvm/src/Acme/DemoBundle/Resources/views/Secured/login.html.twig
./php-symfony2_hhvm/src/Acme/DemoBundle/Resources/views/Secured/helloadmin.html.twig
./php-symfony2_hhvm/src/Acme/DemoBundle/Resources/views/Secured/layout.html.twig
./php-symfony2_hhvm/src/Acme/DemoBundle/Resources/views/Welcome
./php-symfony2_hhvm/src/Acme/DemoBundle/Resources/views/Welcome/index.html.twig
./php-symfony2_hhvm/src/Acme/DemoBundle/Resources/views/layout.html.twig
./php-symfony2_hhvm/src/Acme/DemoBundle/Resources/views/Demo
./php-symfony2_hhvm/src/Acme/DemoBundle/Resources/views/Demo/hello.html.twig
./php-symfony2_hhvm/src/Acme/DemoBundle/Resources/views/Demo/index.html.twig
./php-symfony2_hhvm/src/Acme/DemoBundle/Resources/views/Demo/contact.html.twig
./php-symfony2_hhvm/src/Acme/DemoBundle/Resources/config
./php-symfony2_hhvm/src/Acme/DemoBundle/Resources/config/services.xml
./php-symfony2_hhvm/src/Acme/DemoBundle/Form
./php-symfony2_hhvm/src/Acme/DemoBundle/Form/ContactType.php
./php-symfony2_hhvm/src/Acme/DemoBundle/Tests
./php-symfony2_hhvm/src/Acme/DemoBundle/Tests/Controller
./php-symfony2_hhvm/src/Acme/DemoBundle/Tests/Controller/DemoControllerTest.php
./php-symfony2_hhvm/web/bundles/
./php-symfony2_hhvm/web/bundles/sensiodistribution
./php-symfony2_hhvm/web/bundles/sensiodistribution/webconfigurator
./php-symfony2_hhvm/web/bundles/sensiodistribution/webconfigurator/images
./php-symfony2_hhvm/web/bundles/sensiodistribution/webconfigurator/images/blue-arrow.png
./php-symfony2_hhvm/web/bundles/sensiodistribution/webconfigurator/images/notification.gif
./php-symfony2_hhvm/web/bundles/sensiodistribution/webconfigurator/images/favicon.ico
./php-symfony2_hhvm/web/bundles/sensiodistribution/webconfigurator/css
./php-symfony2_hhvm/web/bundles/sensiodistribution/webconfigurator/css/configurator.css
./php-symfony2_hhvm/web/bundles/sensiodistribution/webconfigurator/css/install.css
./php-symfony2_hhvm/web/bundles/framework
./php-symfony2_hhvm/web/bundles/framework/images
./php-symfony2_hhvm/web/bundles/framework/images/grey_magnifier.png
./php-symfony2_hhvm/web/bundles/framework/images/logo_symfony.png
./php-symfony2_hhvm/web/bundles/framework/images/blue_picto_more.gif
./php-symfony2_hhvm/web/bundles/framework/images/blue_picto_less.gif
./php-symfony2_hhvm/web/bundles/framework/css
./php-symfony2_hhvm/web/bundles/framework/css/body.css
./php-symfony2_hhvm/web/bundles/framework/css/exception.css
./php-symfony2_hhvm/web/bundles/framework/css/structure.css
./php-symfony2_hhvm/web/bundles/acmedemo
./php-symfony2_hhvm/web/bundles/acmedemo/images
./php-symfony2_hhvm/web/bundles/acmedemo/images/blue-arrow.png
./php-symfony2_hhvm/web/bundles/acmedemo/images/welcome-configure.gif
./php-symfony2_hhvm/web/bundles/acmedemo/images/welcome-demo.gif
./php-symfony2_hhvm/web/bundles/acmedemo/images/search.png
./php-symfony2_hhvm/web/bundles/acmedemo/images/welcome-quick-tour.gif
./php-symfony2_hhvm/web/bundles/acmedemo/images/field-background.gif
./php-symfony2_hhvm/web/bundles/acmedemo/images/logo.gif
./php-symfony2_hhvm/web/bundles/acmedemo/css
./php-symfony2_hhvm/web/bundles/acmedemo/css/demo.css
./php-symfony2_hhvm/web/app_dev.php
./php-symfony2_hhvm/web/app.php
View
@@ -0,0 +1 @@
deny from all
View
@@ -0,0 +1,9 @@
<?php
namespace Acme\DemoBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class AcmeDemoBundle extends Bundle
{
}
View
@@ -0,0 +1,57 @@
<?php
namespace Acme\DemoBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Acme\DemoBundle\Form\ContactType;
// these import the "@Route" and "@Template" annotations
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
class DemoController extends Controller
{
/**
* @Route("/", name="_demo")
* @Template()
*/
public function indexAction()
{
return array();
}
/**
* @Route("/hello/{name}", name="_demo_hello")
* @Template()
*/
public function helloAction($name)
{
return array('name' => $name);
}
/**
* @Route("/contact", name="_demo_contact")
* @Template()
*/
public function contactAction()
{
$form = $this->get('form.factory')->create(new ContactType());
$request = $this->get('request');
if ($request->isMethod('POST')) {
$form->bind($request);
if ($form->isValid()) {
$mailer = $this->get('mailer');
// .. setup a message and send it
// http://symfony.com/doc/current/cookbook/email.html
$this->get('session')->getFlashBag()->set('notice', 'Message sent!');
return new RedirectResponse($this->generateUrl('_demo'));
}
}
return array('form' => $form->createView());
}
}
View
@@ -0,0 +1,69 @@
<?php
namespace Acme\DemoBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\Security\Core\SecurityContext;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use JMS\SecurityExtraBundle\Annotation\Secure;
/**
* @Route("/demo/secured")
*/
class SecuredController extends Controller
{
/**
* @Route("/login", name="_demo_login")
* @Template()
*/
public function loginAction()
{
if ($this->get('request')->attributes->has(SecurityContext::AUTHENTICATION_ERROR)) {
$error = $this->get('request')->attributes->get(SecurityContext::AUTHENTICATION_ERROR);
} else {
$error = $this->get('request')->getSession()->get(SecurityContext::AUTHENTICATION_ERROR);
}
return array(
'last_username' => $this->get('request')->getSession()->get(SecurityContext::LAST_USERNAME),
'error' => $error,
);
}
/**
* @Route("/login_check", name="_security_check")
*/
public function securityCheckAction()
{
// The security layer will intercept this request
}
/**
* @Route("/logout", name="_demo_logout")
*/
public function logoutAction()
{
// The security layer will intercept this request
}
/**
* @Route("/hello", defaults={"name"="World"}),
* @Route("/hello/{name}", name="_demo_secured_hello")
* @Template()
*/
public function helloAction($name)
{
return array('name' => $name);
}
/**
* @Route("/hello/admin/{name}", name="_demo_secured_hello_admin")
* @Secure(roles="ROLE_ADMIN")
* @Template()
*/
public function helloadminAction($name)
{
return array('name' => $name);
}
}
View
@@ -0,0 +1,18 @@
<?php
namespace Acme\DemoBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class WelcomeController extends Controller
{
public function indexAction()
{
/*
* The action's view can be rendered using render() method
* or @Template annotation as demonstrated in DemoController.
*
*/
return $this->render('AcmeDemoBundle:Welcome:index.html.twig');
}
}
View
@@ -0,0 +1,22 @@
<?php
namespace Acme\DemoBundle\DependencyInjection;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
use Symfony\Component\Config\FileLocator;
class AcmeDemoExtension extends Extension
{
public function load(array $configs, ContainerBuilder $container)
{
$loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
$loader->load('services.xml');
}
public function getAlias()
{
return 'acme_demo';
}
}
View
@@ -0,0 +1,25 @@
<?php
namespace Acme\DemoBundle\EventListener;
use Symfony\Component\EventDispatcher\Event;
use Symfony\Component\HttpKernel\HttpKernelInterface;
use Symfony\Component\HttpKernel\Event\FilterControllerEvent;
use Acme\DemoBundle\Twig\Extension\DemoExtension;
class ControllerListener
{
protected $extension;
public function __construct(DemoExtension $extension)
{
$this->extension = $extension;
}
public function onKernelController(FilterControllerEvent $event)
{
if (HttpKernelInterface::MASTER_REQUEST === $event->getRequestType()) {
$this->extension->setController($event->getController());
}
}
}
View
@@ -0,0 +1,20 @@
<?php
namespace Acme\DemoBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
class ContactType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('email', 'email');
$builder->add('message', 'textarea');
}
public function getName()
{
return 'contact';
}
}
View
@@ -0,0 +1,18 @@
<?xml version="1.0" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<services>
<service id="twig.extension.acme.demo" class="Acme\DemoBundle\Twig\Extension\DemoExtension" public="false">
<tag name="twig.extension" />
<argument type="service" id="twig.loader" />
</service>
<service id="acme.demo.listener" class="Acme\DemoBundle\EventListener\ControllerListener">
<tag name="kernel.event_listener" event="kernel.controller" method="onKernelController" />
<argument type="service" id="twig.extension.acme.demo" />
</service>
</services>
</container>
View
@@ -0,0 +1,101 @@
body {
font-size: 14px;
font-family: "Lucida Sans Unicode", "Lucida Grande", Verdana, Arial, Helvetica, sans-serif;
}
h1.title {
font-size: 45px;
padding-bottom: 30px;
}
.sf-reset h2 {
font-weight: bold;
color: #FFFFFF;
/* Font is duplicated of body (sans-serif) */
font-family: "Lucida Sans Unicode", "Lucida Grande", Verdana, Arial, Helvetica, sans-serif;
margin-bottom: 10px;
background-color: #aacd4e;
padding: 2px 4px;
display: inline-block;
text-transform: uppercase;
}
p {
line-height: 20px;
padding-bottom: 20px;
}
ul#demo-list a {
background: url(../images/blue-arrow.png) no-repeat right 6px;
padding-right: 10px;
margin-right: 30px;
}
#symfony-header {
position: relative;
padding: 30px 30px 20px 30px;
}
.sf-reset .symfony-blocks-welcome {
overflow: hidden;
}
.sf-reset .symfony-blocks-welcome > div {
background-color: whitesmoke;
float: left;
width: 240px;
margin-right: 14px;
text-align: center;
padding: 26px 20px;
}
.sf-reset .symfony-blocks-welcome > div.block-demo {
margin-right: 0;
}
.sf-reset .symfony-blocks-welcome .illustration {
padding-bottom: 20px;
}
.sf-reset .symfony-blocks-help {
overflow: hidden;
}
.sf-reset .symfony-blocks-help {
margin-top: 30px;
padding: 18px;
border: 1px solid #E6E6E6;
}
.sf-reset .symfony-blocks-help > div {
width: 254px;
float: left;
}
.flash-message {
padding: 10px;
margin: 5px;
margin-top: 15px;
background-color: #ffe;
}
.sf-reset .error {
color: red;
}
#login label, #contact_form label {
display: block;
float: left;
width: 90px;
}
.sf-reset ul#menu {
float: right;
margin-bottom: 20px;
padding-left: 0;
}
.sf-reset #menu li {
padding-left: 0;
margin-right: 10px;
display: inline;
}
.sf-reset a,
.sf-reset li a {
color: #08C;
text-decoration: none;
}
.sf-reset a:hover,
.sf-reset li a:hover {
color: #08C;
text-decoration: underline;
}
.sf-reset .symfony-content pre {
white-space: pre;
font-family: monospace;
}
View
Binary file not shown.
View
Binary file not shown.
View
Binary file not shown.
View
Binary file not shown.
View
Binary file not shown.
View
Binary file not shown.
View
Binary file not shown.
View
@@ -0,0 +1,15 @@
{% extends "AcmeDemoBundle::layout.html.twig" %}
{% block title "Symfony - Contact form" %}
{% block content %}
<form action="{{ path('_demo_contact') }}" method="POST" id="contact_form">
{{ form_errors(form) }}
{{ form_row(form.email) }}
{{ form_row(form.message) }}
{{ form_rest(form) }}
<input type="submit" value="Send" class="symfony-button-grey" />
</form>
{% endblock %}
View
@@ -0,0 +1,9 @@
{% extends "AcmeDemoBundle::layout.html.twig" %}
{% block title "Hello " ~ name %}
{% block content %}
<h1>Hello {{ name }}!</h1>
{% endblock %}
{% set code = code(_self) %}
View
@@ -0,0 +1,14 @@
{% extends "AcmeDemoBundle::layout.html.twig" %}
{% block title "Symfony - Demos" %}
{% block content_header '' %}
{% block content %}
<h1 class="title">Available demos</h1>
<ul id="demo-list">
<li><a href="{{ path('_demo_hello', {'name': 'World'}) }}">Hello World</a></li>
<li><a href="{{ path('_demo_secured_hello', {'name': 'World'}) }}">Access the secured area</a> <a href="{{ path('_demo_login') }}">Go to the login page</a></li>
{# <li><a href="{{ path('_demo_contact') }}">Send a Message</a></li> #}
</ul>
{% endblock %}
View
@@ -0,0 +1,11 @@
{% extends "AcmeDemoBundle:Secured:layout.html.twig" %}
{% block title "Hello " ~ name %}
{% block content %}
<h1 class="title">Hello {{ name }}!</h1>
<a href="{{ path('_demo_secured_hello_admin', { 'name': name }) }}">Hello resource secured for <strong>admin</strong> only.</a>
{% endblock %}
{% set code = code(_self) %}
View
@@ -0,0 +1,9 @@
{% extends "AcmeDemoBundle:Secured:layout.html.twig" %}
{% block title "Hello " ~ name %}
{% block content %}
<h1 class="title">Hello {{ name }} secured for Admins only!</h1>
{% endblock %}
{% set code = code(_self) %}
View
@@ -0,0 +1,6 @@
{% extends "AcmeDemoBundle::layout.html.twig" %}
{% block content_header_more %}
{{ parent() }}
<li>logged in as <strong>{{ app.user ? app.user.username : 'Anonymous' }}</strong> - <a href="{{ path('_demo_logout') }}">Logout</a></li>
{% endblock %}
View
@@ -0,0 +1,35 @@
{% extends 'AcmeDemoBundle::layout.html.twig' %}
{% block content %}
<h1 class="title">Login</h1>
<p>
Choose between two default users: <em>user/userpass</em> <small>(ROLE_USER)</small> or <em>admin/adminpass</em> <small>(ROLE_ADMIN)</small>
</p>
{% if error %}
<div class="error">{{ error.message }}</div>
{% endif %}
<form action="{{ path("_security_check") }}" method="post" id="login">
<div>
<label for="username">Username</label>
<input type="text" id="username" name="_username" value="{{ last_username }}" />
</div>
<div>
<label for="password">Password</label>
<input type="password" id="password" name="_password" />
</div>
<button type="submit" class="sf-button">
<span class="border-l">
<span class="border-r">
<span class="btn-bg">Login</span>
</span>
</span>
</button>
</form>
{% endblock %}
{% set code = code(_self) %}
View
@@ -0,0 +1,83 @@
{% extends 'AcmeDemoBundle::layout.html.twig' %}
{% block title %}Symfony - Welcome{% endblock %}
{% block content_header '' %}
{% block content %}
{% set version = constant('Symfony\\Component\\HttpKernel\\Kernel::MAJOR_VERSION') ~ '.' ~ constant('Symfony\\Component\\HttpKernel\\Kernel::MINOR_VERSION')%}
<h1 class="title">Welcome!</h1>
<p>Congratulations! You have successfully installed a new Symfony application.</p>
<div class="symfony-blocks-welcome">
<div class="block-quick-tour">
<div class="illustration">
<img src="{{ asset('bundles/acmedemo/images/welcome-quick-tour.gif') }}" alt="Quick tour" />
</div>
<a href="http://symfony.com/doc/{{ version }}/quick_tour/index.html" class="sf-button sf-button-selected">
<span class="border-l">
<span class="border-r">
<span class="btn-bg">Read the Quick Tour</span>
</span>
</span>
</a>
</div>
{% if app.environment == 'dev' %}
<div class="block-configure">
<div class="illustration">
<img src="{{ asset('bundles/acmedemo/images/welcome-configure.gif') }}" alt="Configure your application" />
</div>
<a href="{{ path('_configurator_home') }}" class="sf-button sf-button-selected">
<span class="border-l">
<span class="border-r">
<span class="btn-bg">Configure</span>
</span>
</span>
</a>
</div>
{% endif %}
<div class="block-demo">
<div class="illustration">
<img src="{{ asset('bundles/acmedemo/images/welcome-demo.gif') }}" alt="Demo" />
</div>
<a href="{{ path('_demo') }}" class="sf-button sf-button-selected">
<span class="border-l">
<span class="border-r">
<span class="btn-bg">Run The Demo</span>
</span>
</span>
</a>
</div>
</div>
<div class="symfony-blocks-help">
<div class="block-documentation">
<ul>
<li><strong>Documentation</strong></li>
<li><a href="http://symfony.com/doc/{{ version }}/book/index.html">The Book</a></li>
<li><a href="http://symfony.com/doc/{{ version }}/cookbook/index.html">The Cookbook</a></li>
<li><a href="http://symfony.com/doc/{{ version }}/components/index.html">The Components</a></li>
<li><a href="http://symfony.com/doc/{{ version }}/reference/index.html">Reference</a></li>
<li><a href="http://symfony.com/doc/{{ version }}/glossary.html">Glossary</a></li>
</ul>
</div>
<div class="block-documentation-more">
<ul>
<li><strong>Sensio</strong></li>
<li><a href="http://trainings.sensiolabs.com">Trainings</a></li>
<li><a href="http://books.sensiolabs.com">Books</a></li>
</ul>
</div>
<div class="block-community">
<ul>
<li><strong>Community</strong></li>
<li><a href="http://symfony.com/irc">IRC channel</a></li>
<li><a href="http://symfony.com/mailing-lists">Mailing lists</a></li>
<li><a href="http://forum.symfony-project.org">Forum</a></li>
<li><a href="http://symfony.com/doc/{{ version }}/contributing/index.html">Contributing</a></li>
</ul>
</div>
</div>
{% endblock %}
View
@@ -0,0 +1,37 @@
{% extends "TwigBundle::layout.html.twig" %}
{% block head %}
<link rel="icon" sizes="16x16" href="{{ asset('favicon.ico') }}" />
<link rel="stylesheet" href="{{ asset('bundles/acmedemo/css/demo.css') }}" />
{% endblock %}
{% block title 'Demo Bundle' %}
{% block body %}
{% for flashMessage in app.session.flashbag.get('notice') %}
<div class="flash-message">
<em>Notice</em>: {{ flashMessage }}
</div>
{% endfor %}
{% block content_header %}
<ul id="menu">
{% block content_header_more %}
<li><a href="{{ path('_demo') }}">Demo Home</a></li>
{% endblock %}
</ul>
<div style="clear: both"></div>
{% endblock %}
<div class="block">
{% block content %}{% endblock %}
</div>
{% if code is defined %}
<h2>Code behind this page</h2>
<div class="block">
<div class="symfony-content">{{ code|raw }}</div>
</div>
{% endif %}
{% endblock %}
View
@@ -0,0 +1,17 @@
<?php
namespace Acme\DemoBundle\Tests\Controller;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class DemoControllerTest extends WebTestCase
{
public function testIndex()
{
$client = static::createClient();
$crawler = $client->request('GET', '/demo/hello/Fabien');
$this->assertGreaterThan(0, $crawler->filter('html:contains("Hello Fabien")')->count());
}
}
View
@@ -0,0 +1,81 @@
<?php
namespace Acme\DemoBundle\Twig\Extension;
use CG\Core\ClassUtils;
class DemoExtension extends \Twig_Extension
{
protected $loader;
protected $controller;
public function __construct(\Twig_LoaderInterface $loader)
{
$this->loader = $loader;
}
public function setController($controller)
{
$this->controller = $controller;
}
/**
* {@inheritdoc}
*/
public function getFunctions()
{
return array(
'code' => new \Twig_Function_Method($this, 'getCode', array('is_safe' => array('html'))),
);
}
public function getCode($template)
{
// highlight_string highlights php code only if '<?php' tag is present.
$controller = highlight_string("<?php" . $this->getControllerCode(), true);
$controller = str_replace('<span style="color: #0000BB">&lt;?php&nbsp;&nbsp;&nbsp;&nbsp;</span>', '&nbsp;&nbsp;&nbsp;&nbsp;', $controller);
$template = htmlspecialchars($this->getTemplateCode($template), ENT_QUOTES, 'UTF-8');
// remove the code block
$template = str_replace('{% set code = code(_self) %}', '', $template);
return <<<EOF
<p><strong>Controller Code</strong></p>
<pre>$controller</pre>
<p><strong>Template Code</strong></p>
<pre>$template</pre>
EOF;
}
protected function getControllerCode()
{
$class = get_class($this->controller[0]);
if (class_exists('CG\Core\ClassUtils')) {
$class = ClassUtils::getUserClass($class);
}
$r = new \ReflectionClass($class);
$m = $r->getMethod($this->controller[1]);
$code = file($r->getFilename());
return ' '.$m->getDocComment()."\n".implode('', array_slice($code, $m->getStartline() - 1, $m->getEndLine() - $m->getStartline() + 1));
}
protected function getTemplateCode($template)
{
return $this->loader->getSource($template->getTemplateName());
}
/**
* Returns the name of the extension.
*
* @return string The extension name
*/
public function getName()
{
return 'demo';
}
}
View
@@ -0,0 +1,131 @@
<?php
namespace Skamander\BenchmarkBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Skamander\BenchmarkBundle\Entity\Fortune;
class BenchController extends Controller
{
public function jsonAction()
{
return new JsonResponse(array('message' => 'Hello, World!'));
}
public function dbAction(Request $request)
{
$queries = $request->query->getInt('queries', 1);
$queries = max(1, $queries);
$queries = min(500, $queries);
// possibility for enhancement is the use of SplFixedArray -> http://php.net/manual/de/class.splfixedarray.php
$worlds = array();
$repo = $this->getDoctrine()
->getRepository('SkamanderBenchmarkBundle:World');
for ($i = 0; $i < $queries; ++$i) {
$worlds[] = $repo->find(mt_rand(1, 10000));
}
if ($queries == 1 && !$request->query->has('queries')) {
$worlds = $worlds[0];
}
return new JsonResponse($worlds);
}
public function dbRawAction(Request $request)
{
$queries = $request->query->getInt('queries', 1);
// possibility for enhancement is the use of SplFixedArray -> http://php.net/manual/de/class.splfixedarray.php
$worlds = array();
$conn = $this->get('database_connection');
for($i = 0; $i < $queries; ++$i) {
$worlds[] = $conn->fetchAssoc('SELECT * FROM World WHERE id = ?', array(mt_rand(1, 10000)));
}
if ($queries == 1) {
$worlds = $worlds[0];
}
return new JsonResponse($worlds);
}
public function fortunesAction()
{
$repo = $this->getDoctrine()
->getRepository('SkamanderBenchmarkBundle:Fortune');
$fortunes = $repo->findAll();
$runtimeFortune = new Fortune();
$runtimeFortune->setId(0)
->setMessage('Additional fortune added at request time.');
$fortunes[] = $runtimeFortune;
usort($fortunes, function($left, $right) {
return strcmp($left->message, $right->message);
});
return $this->render("SkamanderBenchmarkBundle:Bench:fortunes.html.twig", [
'fortunes' => $fortunes
]);
}
public function fortunesPhpAction()
{
$repo = $this->getDoctrine()
->getRepository('SkamanderBenchmarkBundle:Fortune');
$fortunes = $repo->findAll();
$runtimeFortune = new Fortune();
$runtimeFortune->setId(0)
->setMessage('Additional fortune added at request time.');
$fortunes[] = $runtimeFortune;
usort($fortunes, function($left, $right) {
return strcmp($left->message, $right->message);
});
return $this->render("SkamanderBenchmarkBundle:Bench:fortunes.html.php", [
'fortunes' => $fortunes
]);
}
public function fortunesRawAction()
{
$repo = $this->getDoctrine()
->getRepository('SkamanderBenchmarkBundle:Fortune');
$fortunes = $repo->findAll();
$runtimeFortune = new Fortune();
$runtimeFortune->setId(0)
->setMessage('Additional fortune added at request time.');
$fortunes[] = $runtimeFortune;
usort($fortunes, function($left, $right) {
return strcmp($left->message, $right->message);
});
// This is not the symfony way to work with templates! It's implemented to show users
// who don't want to use template engines (like twig), or template sugar (like the slots etc.
// from symfony 2), because in their opinion already built-in php constructs like foreach +
// if else + include etc. are enough, that the performance impact should be neglectable, and
// that the advantages outweigh the disadvantages (performance).
$title = 'Fortunes';
ob_start();
include __DIR__ . '/../Resources/views/Bench/raw/content.php';
$response = ob_get_clean();
return new Response($response);
}
}
View
@@ -0,0 +1,69 @@
<?php
namespace Skamander\BenchmarkBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="Fortune")
*/
class Fortune
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
*/
public $id;
/**
* @ORM\Column(type="string")
*/
public $message;
/**
* Set id
*
* @param integer $id
* @return Fortune
*/
public function setId($id)
{
$this->id = $id;
return $this;
}
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set message
*
* @param string $message
* @return Fortune
*/
public function setMessage($message)
{
$this->message = $message;
return $this;
}
/**
* Get message
*
* @return string
*/
public function getMessage()
{
return $this->message;
}
}
View
@@ -0,0 +1,85 @@
<?php
namespace Skamander\BenchmarkBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="World")
*/
class World /* implements JsonSerializable */
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
*/
public $id;
/**
* @ORM\Column(type="integer")
*/
public $randomNumber;
/**
* Although this is a benchmark, implemented this so
* we don't have to make our members public. :)
*
* @return array
*/
/*
public function jsonSerialize() {
return [
'id' => $this->id,
'randomNumber' => $this->randomNumber
];
}
*/
/**
* Set id
*
* @param integer $id
* @return World
*/
public function setId($id)
{
$this->id = $id;
return $this;
}
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set randomNumber
*
* @param integer $randomNumber
* @return World
*/
public function setRandomNumber($randomNumber)
{
$this->randomNumber = $randomNumber;
return $this;
}
/**
* Get randomNumber
*
* @return integer
*/
public function getRandomNumber()
{
return $this->randomNumber;
}
}
View
@@ -0,0 +1,18 @@
<?php $view->extend('SkamanderBenchmarkBundle::layout.html.php') ?>
<?php $view['slots']->set('title', 'Fortunes') ?>
<?php $view['slots']->start('content') ?>
<table>
<tr>
<th>id</th>
<th>message</th>
</tr>
<?php foreach($fortunes as $fortune): ?>
<tr>
<td><?php echo $view->escape($fortune->id); ?></td>
<td><?php echo $view->escape($fortune->message); ?></td>
</tr>
<?php endforeach; ?>
</table>
<?php $view['slots']->stop() ?>
View
@@ -0,0 +1,20 @@
{% extends "SkamanderBenchmarkBundle::layout.html.twig" %}
{% block title "Fortunes" %}
{% block content %}
<table>
<tr>
<th>id</th>
<th>message</th>
</tr>
{% for fortune in fortunes %}
<tr>
<td>{{ fortune.id }}</td>
<td>{{ fortune.message }}</td>
</tr>
{% endfor %}
</table>
{% endblock %}
View
@@ -0,0 +1,5 @@
<?php include 'template_header.php'; ?>
<?php include 'fortunes.php'; ?>
<?php include 'template_footer.php'; ?>
View
@@ -0,0 +1,14 @@
<table>
<tr>
<th>id</th>
<th>message</th>
</tr>
<?php foreach($fortunes as $fortune): ?>
<tr>
<td><?php echo $fortune->id; ?></td>
<td><?php echo htmlspecialchars($fortune->message, ENT_QUOTES, "UTF-8", false); ?></td>
</tr>
<?php endforeach; ?>
</table>
View
@@ -0,0 +1,2 @@
</body>
</html>
View
@@ -0,0 +1,6 @@
<!DOCTYPE html>
<html>
<head>
<title><?php echo $title ?></title>
</head>
<body>
View
@@ -0,0 +1,7 @@
<?php $view->extend('::base.html.php') ?>
<?php $view['slots']->set('title', 'Fortunes') ?>
<?php $view['slots']->start('body') ?>
<?php $view['slots']->output('content') ?>
<?php $view['slots']->stop() ?>
View
@@ -0,0 +1,7 @@
{% extends '::base.html.twig' %}
{% block title 'Fortunes' %}
{% block body %}
{% block content %}{% endblock %}
{% endblock %}
View
@@ -0,0 +1,9 @@
<?php
namespace Skamander\BenchmarkBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class SkamanderBenchmarkBundle extends Bundle
{
}
View
@@ -0,0 +1,48 @@
# Use the front controller as index file. It serves as fallback solution when
# every other rewrite/redirect fails (e.g. in an aliased environment without
# mod_rewrite). Additionally, this reduces the matching process for the
# startpage (path "/") because otherwise Apache will apply the rewritting rules
# to each configured DirectoryIndex file (e.g. index.php, index.html, index.pl).
DirectoryIndex app.php
<IfModule mod_rewrite.c>
RewriteEngine On
# Redirect to URI without front controller to prevent duplicate content
# (with and without `/app.php`). Only do this redirect on the initial
# rewrite by Apache and not on subsequent cycles. Otherwise we would get an
# endless redirect loop (request -> rewrite to front controller ->
# redirect -> request -> ...).
# So in case you get a "too many redirects" error or you always get redirected
# to the startpage because your Apache does not expose the REDIRECT_STATUS
# environment variable, you have 2 choices:
# - disable this feature by commenting the following 2 lines or
# - use Apache >= 2.3.9 and replace all L flags by END flags and remove the
# following RewriteCond (best solution)
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^app\.php(/(.*)|$) %{CONTEXT_PREFIX}/$2 [R=301,L]
# If the requested filename exists, simply serve it.
# We only want to let Apache serve files and not directories.
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .? - [L]
# The following rewrites all other queries to the front controller. The
# condition ensures that if you are using Apache aliases to do mass virtual
# hosting, the base path will be prepended to allow proper resolution of the
# app.php file; it will work in non-aliased environments as well, providing
# a safe, one-size fits all solution.
RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteRule .? %{ENV:BASE}app.php [L]
</IfModule>
<IfModule !mod_rewrite.c>
<IfModule mod_alias.c>
# When mod_rewrite is not available, we instruct a temporary redirect of
# the startpage to the front controller explicitly so that the website
# and the generated links can still be used.
RedirectMatch 302 ^/$ /app.php/
# RedirectTemp cannot be used instead
</IfModule>
</IfModule>
View
@@ -0,0 +1,22 @@
<?php
use Symfony\Component\HttpFoundation\Request;
$loader = require_once __DIR__.'/../app/bootstrap.php.cache';
require_once __DIR__.'/../app/AppKernel.php';
// FrameworkBenchmark rules prohibit using AppCache,
// specifically every request for the JSON test type
// must be handled separately
//
// require_once __DIR__.'/../app/AppCache.php';
$kernel = new AppKernel('prod', false);
$kernel->loadClassCache();
//$kernel = new AppCache($kernel);
Request::enableHttpMethodParameterOverride();
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);
View
@@ -0,0 +1,28 @@
<?php
use Symfony\Component\HttpFoundation\Request;
// If you don't want to setup permissions the proper way, just uncomment the following PHP line
// read http://symfony.com/doc/current/book/installation.html#configuration-and-setup for more information
//umask(0000);
// 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.');
}
$loader = require_once __DIR__.'/../app/bootstrap.php.cache';
require_once __DIR__.'/../app/AppKernel.php';
$kernel = new AppKernel('dev', true);
$kernel->loadClassCache();
Request::enableHttpMethodParameterOverride();
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);
View
Binary file not shown.
View
@@ -0,0 +1,101 @@
body {
font-size: 14px;
font-family: "Lucida Sans Unicode", "Lucida Grande", Verdana, Arial, Helvetica, sans-serif;
}
h1.title {
font-size: 45px;
padding-bottom: 30px;
}
.sf-reset h2 {
font-weight: bold;
color: #FFFFFF;
/* Font is duplicated of body (sans-serif) */
font-family: "Lucida Sans Unicode", "Lucida Grande", Verdana, Arial, Helvetica, sans-serif;
margin-bottom: 10px;
background-color: #aacd4e;
padding: 2px 4px;
display: inline-block;
text-transform: uppercase;
}
p {
line-height: 20px;
padding-bottom: 20px;
}
ul#demo-list a {
background: url(../images/blue-arrow.png) no-repeat right 6px;
padding-right: 10px;
margin-right: 30px;
}
#symfony-header {
position: relative;
padding: 30px 30px 20px 30px;
}
.sf-reset .symfony-blocks-welcome {
overflow: hidden;
}
.sf-reset .symfony-blocks-welcome > div {
background-color: whitesmoke;
float: left;
width: 240px;
margin-right: 14px;
text-align: center;
padding: 26px 20px;
}
.sf-reset .symfony-blocks-welcome > div.block-demo {
margin-right: 0;
}
.sf-reset .symfony-blocks-welcome .illustration {
padding-bottom: 20px;
}
.sf-reset .symfony-blocks-help {
overflow: hidden;
}
.sf-reset .symfony-blocks-help {
margin-top: 30px;
padding: 18px;
border: 1px solid #E6E6E6;
}
.sf-reset .symfony-blocks-help > div {
width: 254px;
float: left;
}
.flash-message {
padding: 10px;
margin: 5px;
margin-top: 15px;
background-color: #ffe;
}
.sf-reset .error {
color: red;
}
#login label, #contact_form label {
display: block;
float: left;
width: 90px;
}
.sf-reset ul#menu {
float: right;
margin-bottom: 20px;
padding-left: 0;
}
.sf-reset #menu li {
padding-left: 0;
margin-right: 10px;
display: inline;
}
.sf-reset a,
.sf-reset li a {
color: #08C;
text-decoration: none;
}
.sf-reset a:hover,
.sf-reset li a:hover {
color: #08C;
text-decoration: underline;
}
.sf-reset .symfony-content pre {
white-space: pre;
font-family: monospace;
}
View
Binary file not shown.
View
Binary file not shown.
View
Binary file not shown.
View
Binary file not shown.
View
Binary file not shown.
View
Binary file not shown.
View
Binary file not shown.
View
@@ -0,0 +1,150 @@
/*
Copyright (c) 2010, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.com/yui/license.html
version: 3.1.2
build: 56
*/
.sf-reset html{color:#000;background:#FFF;}.sf-reset body,.sf-reset div,.sf-reset dl,.sf-reset dt,.sf-reset dd,.sf-reset ul,.sf-reset ol,.sf-reset li,.sf-reset h1,.sf-reset h2,.sf-reset h3,.sf-reset h4,.sf-reset h5,.sf-reset h6,.sf-reset pre,.sf-reset code,.sf-reset form,.sf-reset fieldset,.sf-reset legend,.sf-reset input,.sf-reset textarea,.sf-reset p,.sf-reset blockquote,.sf-reset th,.sf-reset td{margin:0;padding:0;}.sf-reset table{border-collapse:collapse;border-spacing:0;}.sf-reset fieldset,.sf-reset img{border:0;}.sf-reset address,.sf-reset caption,.sf-reset cite,.sf-reset code,.sf-reset dfn,.sf-reset em,.sf-reset strong,.sf-reset th,.sf-reset var{font-style:normal;font-weight:normal;}.sf-reset li{list-style:none;}.sf-reset caption,.sf-reset th{text-align:left;}.sf-reset h1,.sf-reset h2,.sf-reset h3,.sf-reset h4,.sf-reset h5,.sf-reset h6{font-size:100%;font-weight:normal;}.sf-reset q:before,.sf-reset q:after{content:'';}.sf-reset abbr,.sf-reset acronym{border:0;font-variant:normal;}.sf-reset sup{vertical-align:text-top;}.sf-reset sub{vertical-align:text-bottom;}.sf-reset input,.sf-reset textarea,.sf-reset select{font-family:inherit;font-size:inherit;font-weight:inherit;}.sf-reset input,.sf-reset textarea,.sf-reset select{*font-size:100%;}.sf-reset legend{color:#000;}
.sf-reset html,
.sf-reset body {
width: 100%;
min-height: 100%;
_height: 100%;
margin: 0;
padding: 0;
}
.sf-reset body {
font: 1em "Lucida Sans Unicode", "Lucida Grande", Verdana, Arial, Helvetica, sans-serif;
text-align: left;
background-color: #efefef;
}
.sf-reset abbr {
border-bottom: 1px dotted #000;
cursor: help;
}
.sf-reset p {
font-size: 14px;
line-height: 20px;
padding-bottom: 20px;
}
.sf-reset strong {
color: #313131;
font-weight: bold;
}
.sf-reset a {
color: #6c6159;
}
.sf-reset a img {
border: none;
}
.sf-reset a:hover {
text-decoration: underline;
}
.sf-reset em {
font-style: italic;
}
.sf-reset h2,
.sf-reset h3 {
font-weight: bold;
}
.sf-reset h1 {
font-family: Georgia, "Times New Roman", Times, serif;
font-size: 20px;
color: #313131;
word-break: break-all;
}
.sf-reset li {
padding-bottom: 10px;
}
.sf-reset .block {
-moz-border-radius: 16px;
-webkit-border-radius: 16px;
border-radius: 16px;
margin-bottom: 20px;
background-color: #FFFFFF;
border: 1px solid #dfdfdf;
padding: 40px 50px;
}
.sf-reset h2 {
font-size: 16px;
font-family: Arial, Helvetica, sans-serif;
}
.sf-reset li a {
background: none;
color: #868686;
text-decoration: none;
}
.sf-reset li a:hover {
background: none;
color: #313131;
text-decoration: underline;
}
.sf-reset ol {
padding: 10px 0;
}
.sf-reset ol li {
list-style: decimal;
margin-left: 20px;
padding: 2px;
padding-bottom: 20px;
}
.sf-reset ol ol li {
list-style-position: inside;
margin-left: 0;
white-space: nowrap;
font-size: 12px;
padding-bottom: 0;
}
.sf-reset li .selected {
background-color: #ffd;
}
.sf-button {
display: -moz-inline-box;
display: inline-block;
text-align: center;
vertical-align: middle;
border: 0;
background: transparent none;
text-transform: uppercase;
cursor: pointer;
font: bold 11px Arial, Helvetica, sans-serif;
}
.sf-button span {
text-decoration: none;
display: block;
height: 28px;
float: left;
}
.sf-button .border-l {
text-decoration: none;
display: block;
height: 28px;
float: left;
padding: 0 0 0 7px;
background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAcCAYAAACtQ6WLAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQtJREFUeNpiPHnyJAMakARiByDWYEGT8ADiYGVlZStubm5xlv///4MEQYoKZGRkQkRERLRYWVl5wYJQyXBZWdkwCQkJUxAHKgaWlAHSLqKiosb//v1DsYMFKGCvoqJiDmQzwXTAJYECulxcXNLoumCSoszMzDzoumDGghQwYZUECWIzkrAkSIIGOmlkLI10AiX//P379x8jIyMTNmPf/v79+ysLCwsvuiQoNi5//fr1Kch4dAyS3P/gwYMTQBP+wxwHw0xA4gkQ73v9+vUZdJ2w1Lf82bNn4iCHCQoKasHsZw4ODgbRIL8c+/Lly5M3b978Y2dn5wC6npkFLXnsAOKLjx49AmUHLYAAAwBoQubG016R5wAAAABJRU5ErkJggg==) no-repeat top left;
}
.sf-button .border-r {
padding: 0 7px 0 0;
background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAcCAYAAACtQ6WLAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAR1JREFUeNpiPHnyZCMDA8MNID5gZmb2nAEJMH7//v3N169fX969e/cYkL8WqGAHXPLv37//QYzfv39/fvPmzbUnT56sAXInmJub/2H5/x8sx8DCwsIrISFhDmQyPX78+CmQXs70798/BmQsKipqBNTgdvz4cWkmkE5kDATMioqKZkCFdiwg1eiAi4tLGqhQF24nMmBmZuYEigth1QkEbEBxTlySYPvJkwSJ00AnjYylgU6gxB8g/oFVEphkvgLF32KNMmCCewYUv4qhEyj47+HDhyeBzIMYOoEp8CxQw56wsLAncJ1//vz5/P79+2svX74EJc2V4BT58+fPd8CE/QKYHMGJOiIiAp6oWW7evDkNSF8DZYfIyEiU7AAQYACJ2vxVdJW4eQAAAABJRU5ErkJggg==) right top no-repeat;
}
.sf-button .btn-bg {
padding: 0px 14px;
color: #636363;
line-height: 28px;
background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAcCAYAAACgXdXMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAClJREFUeNpiPnny5EKGf//+/Wf6//8/A4QAcrGzKCZwGc9sa2urBBBgAIbDUoYVp9lmAAAAAElFTkSuQmCC) repeat-x top left;
}
.sf-button:hover .border-l,
.sf-button-selected .border-l {
background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAcCAYAAACtQ6WLAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAR9JREFUeNpi/P//PwMyOHfunDqQSgNiexZkibNnzxYBqZa3HOs5v7PcYQBLnjlzhg1IbfzIdsTjA/t+ht9Mr8GKwZL//v3r+sB+0OMN+zqIEf8gFMvJkyd1gXTOa9YNDP//otrPAtSV/Jp9HfPff78Z0AEL0LUeXxivMfxD0wXTqfjj/2ugkf+wSrL9/YtpJEyS4S8WI5Ek/+GR/POPFjr//cenE6/kP9q4Fo/kr39/mdj+M/zFkGQCSj5i+ccPjLJ/GBgkuYOHQR1sNDpmAkb2LBmWwL///zKCIxwZM0VHR18G6p4uxeLLAA4tJMwEshiou1iMxXaHLGswA+t/YbhORuQUv2DBAnCifvxzI+enP3dQJUFg/vz5sOzgBBBgAPxX9j0YnH4JAAAAAElFTkSuQmCC) no-repeat top left;
}
.sf-button:hover .border-r,
.sf-button-selected .border-r {
background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAcCAYAAACtQ6WLAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAT5JREFUeNpiPHv27BkGBoaDQDzLyMjoJgMSYHrM3WX8hn1d0f///88DFRYhSzIuv2X5H8Rg/SfKIPDTkYH/l80OINffxMTkF9O/f/8ZQPgnwyuGl+wrGd6x7vf49+9fO9jYf3+Bkkj4NesmBqAV+SdPntQC6vzHgIz//gOawbqOGchOxtAJwp8Zr4F0e7D8/fuPAR38/P8eZIo0yz8skv8YvoIk+YE6/zNgAyD7sRqLkPzzjxY6/+HS+R+fTkZ8djLh08lCUCcuSWawJGbwMTGwg7zyBatX2Bj5QZKPsBrLzaICktzN8g/NWEYGZgYZjoC/wMiei5FMpFh8QPSU6Ojoy3Cd7EwiDBJsDgxiLNY7gLrKQGIsHAxSDHxAO2TZ/b8D+TVxcXF9MCtYtLiKLgDpfUDVsxITE1GyA0CAAQA2E/N8VuHyAAAAAABJRU5ErkJggg==) right top no-repeat;
}
.sf-button:hover .btn-bg,
.sf-button-selected .btn-bg {
color: #FFFFFF;
text-shadow:0 1px 1px #6b9311;
background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAcCAIAAAAvP0KbAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAEFJREFUeNpiPnv2LNMdvlymf///M/37B8R/QfQ/MP33L4j+B6Qh7L9//sHpf2h8MA1V+w/KRjYLaDaLCU8vQIABAFO3TxZriO4yAAAAAElFTkSuQmCC) repeat-x top left;
}
View
@@ -0,0 +1,108 @@
.sf-reset .traces {
padding-bottom: 14px;
}
.sf-reset .traces li {
font-size: 12px;
color: #868686;
padding: 5px 4px;
list-style-type: decimal;
margin-left: 20px;
white-space: break-word;
}
.sf-reset #logs .traces li.error {
font-style: normal;
color: #AA3333;
background: #f9ecec;
}
.sf-reset #logs .traces li.warning {
font-style: normal;
background: #ffcc00;
}
/* fix for Opera not liking empty <li> */
.sf-reset .traces li:after {
content: "\00A0";
}
.sf-reset .trace {
border: 1px solid #D3D3D3;
padding: 10px;
overflow: auto;
margin: 10px 0 20px;
}
.sf-reset .block-exception {
-moz-border-radius: 16px;
-webkit-border-radius: 16px;
border-radius: 16px;
margin-bottom: 20px;
background-color: #f6f6f6;
border: 1px solid #dfdfdf;
padding: 30px 28px;
word-wrap: break-word;
overflow: hidden;
}
.sf-reset .block-exception div {
color: #313131;
font-size: 10px;
}
.sf-reset .block-exception-detected .illustration-exception,
.sf-reset .block-exception-detected .text-exception {
float: left;
}
.sf-reset .block-exception-detected .illustration-exception {
width: 152px;
}
.sf-reset .block-exception-detected .text-exception {
width: 670px;
padding: 30px 44px 24px 46px;
position: relative;
}
.sf-reset .text-exception .open-quote,
.sf-reset .text-exception .close-quote {
position: absolute;
}
.sf-reset .open-quote {
top: 0;
left: 0;
}
.sf-reset .close-quote {
bottom: 0;
right: 50px;
}
.sf-reset .block-exception p {
font-family: Arial, Helvetica, sans-serif;
}
.sf-reset .block-exception p a,
.sf-reset .block-exception p a:hover {
color: #565656;
}
.sf-reset .logs h2 {
float: left;
width: 654px;
}
.sf-reset .error-count {
float: right;
width: 170px;
text-align: right;
}
.sf-reset .error-count span {
display: inline-block;
background-color: #aacd4e;
-moz-border-radius: 6px;
-webkit-border-radius: 6px;
border-radius: 6px;
padding: 4px;
color: white;
margin-right: 2px;
font-size: 11px;
font-weight: bold;
}
.sf-reset .toggle {
vertical-align: middle;
}
.sf-reset .linked ul,
.sf-reset .linked li {
display: inline;
}
.sf-reset #output-content {
color: #000;
font-size: 12px;
}
View
@@ -0,0 +1,72 @@
html {
background: #eee;
}
body {
font: 11px Verdana, Arial, sans-serif;
color: #333;
}
.sf-reset, .sf-reset .block, .sf-reset #message {
margin: auto;
}
img {
border: 0;
}
.clear {
clear: both;
height: 0;
font-size: 0;
line-height: 0;
}
.clear-fix:after {
content: "\0020";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
.clear-fix {
display: inline-block;
}
* html .clear-fix {
height: 1%;
}
.clear-fix {
display: block;
}
.header {
padding: 30px 30px 20px 30px;
}
.header-logo {
float: left;
}
.search {
float: right;
padding-top: 20px;
}
.search label {
line-height: 28px;
vertical-align: middle;
}
.search input {
width: 195px;
font-size: 12px;
border: 1px solid #dadada;
background: #fff url(data:image/gif;base64,R0lGODlhAQAFAKIAAPX19e/v7/39/fr6+urq6gAAAAAAAAAAACH5BAAAAAAALAAAAAABAAUAAAMESAEjCQA7) repeat-x left top;
padding: 5px 6px;
color: #565656;
}
.search input[type="search"] {
-webkit-appearance: textfield;
}
#content {
width: 970px;
margin: 0 auto;
}
pre {
white-space: normal;
font-family: Arial, Helvetica, sans-serif;
}
pre.xdebug-var-dump{
white-space: pre;
font-family: monospace;
}
View
Binary file not shown.
View
Binary file not shown.
View
Binary file not shown.
View
Binary file not shown.
View
@@ -0,0 +1,73 @@
@import url("install.css");
.step h1 {
margin-top: 10px;
margin-bottom: 30px;
font-size: 26px;
}
.step p {
line-height: 20px;
padding-bottom: 20px;
}
.step .symfony-block-steps span {
display: inline-block;
padding: 2px 3px;
font-size: 11px;
line-height: 15px;
color: #868686;
font-weight: bold;
text-transform: uppercase;
}
.step .symfony-block-steps span.selected {
background-color: #aacd4e;
color: #FFFFFF;
}
.step .symfony-form-row {
padding-bottom: 40px;
}
.step .symfony-form-column {
width: 430px;
float: left;
}
.step .symfony-form-footer {
padding-top: 20px;
clear: both;
}
.step .symfony-form-field {
height: 20px;
}
.step .symfony-form-row label {
display: block;
padding-bottom: 8px;
}
.step .symfony-form-field input[type=text],
.step .symfony-form-field input[type=password],
.step .symfony-form-field textarea,
.step .symfony-form-field select {
font-size: 13px;
color: #565656;
width: 200px;
}
.step .symfony-form-field input[type=text],
.step .symfony-form-field input[type=password],
.step .symfony-form-field textarea {
border: 1px solid #dadada;
background: #FFFFFF url(../../../framework/images/input_bg.gif) repeat-x left top;
width: 194px;
padding: 5px 6px;
}
.step .symfony-form-errors ul {
padding: 0;
}
.step .symfony-form-errors li {
background: url(../images/notification.gif) no-repeat left 6px;
font-size: 11px;
line-height: 16px;
color: #759e1a;
padding: 10px 25px;
}
.step .symfony-configuration {
margin: 10px 0;
width: 100%;
height: 240px;
}
View
@@ -0,0 +1,74 @@
body {
font-size: 14px;
font-family: "Lucida Sans Unicode", "Lucida Grande", Verdana, Arial, Helvetica, sans-serif;
}
.sf-reset h1.title {
font-size: 45px;
padding-bottom: 30px;
}
.sf-reset h2 {
font-weight: bold;
color: #FFFFFF;
/* Font is reset to sans-serif (like body) */
font-family: "Lucida Sans Unicode", "Lucida Grande", Verdana, Arial, Helvetica, sans-serif;
margin-bottom: 10px;
background-color: #aacd4e;
padding: 2px 4px;
display: inline-block;
text-transform: uppercase;
}
.sf-reset ul a,
.sf-reset ul a:hover {
background: url(../images/blue-arrow.png) no-repeat right 6px;
padding-right: 10px;
}
.sf-reset ul, ol {
padding-left: 20px;
}
.sf-reset li {
padding-bottom: 18px;
}
.sf-reset ol li {
list-style-type: decimal;
}
.sf-reset ul li {
list-style-type: none;
}
.sf-reset .symfony-blocks-install {
overflow: hidden;
}
.sf-reset .symfony-install-continue {
font-size: 0.95em;
padding-left: 0;
}
.sf-reset .symfony-install-continue li {
padding-bottom: 10px;
}
.sf-reset .ok {
color: #fff;
font-family: "Lucida Sans Unicode", "Lucida Grande", Verdana, Arial, Helvetica, sans-serif;
background-color: #6d6;
padding: 10px;
margin-bottom: 20px;
}
.sf-reset .ko {
background-color: #d66;
}
.version {
text-align: right;
font-size: 10px;
margin-right: 20px;
}
.sf-reset a,
.sf-reset li a {
color: #08C;
text-decoration: none;
}
.sf-reset a:hover,
.sf-reset li a:hover {
color: #08C;
text-decoration: underline;
}
.sf-reset textarea {
padding: 7px;
}
View
Binary file not shown.
View
Binary file not shown.
View
Binary file not shown.
View
@@ -0,0 +1,124 @@
<?php
if (!isset($_SERVER['HTTP_HOST'])) {
exit('This script cannot be run from the CLI. Run it from a browser.');
}
if (!in_array(@$_SERVER['REMOTE_ADDR'], array(
'127.0.0.1',
'::1',
))) {
header('HTTP/1.0 403 Forbidden');
exit('This script is only accessible from localhost.');
}
require_once dirname(__FILE__).'/../app/SymfonyRequirements.php';
$symfonyRequirements = new SymfonyRequirements();
$majorProblems = $symfonyRequirements->getFailedRequirements();
$minorProblems = $symfonyRequirements->getFailedRecommendations();
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="robots" content="noindex,nofollow" />
<title>Symfony Configuration</title>
<link rel="stylesheet" href="bundles/framework/css/structure.css" media="all" />
<link rel="stylesheet" href="bundles/framework/css/body.css" media="all" />
<link rel="stylesheet" href="bundles/sensiodistribution/webconfigurator/css/install.css" media="all" />
</head>
<body>
<div id="content">
<div class="header clear-fix">
<div class="header-logo">
<img src="bundles/framework/images/logo_symfony.png" alt="Symfony" />
</div>
<div class="search">
<form method="get" action="http://symfony.com/search">
<div class="form-row">
<label for="search-id">
<img src="bundles/framework/images/grey_magnifier.png" alt="Search on Symfony website" />
</label>
<input name="q" id="search-id" type="search" placeholder="Search on Symfony website" />
<button type="submit" class="sf-button">
<span class="border-l">
<span class="border-r">
<span class="btn-bg">OK</span>
</span>
</span>
</button>
</div>
</form>
</div>
</div>
<div class="sf-reset">
<div class="block">
<div class="symfony-block-content">
<h1 class="title">Welcome!</h1>
<p>Welcome to your new Symfony project.</p>
<p>
This script will guide you through the basic configuration of your project.
You can also do the same by editing the ‘<strong>app/config/parameters.yml</strong>’ file directly.
</p>
<?php if (count($majorProblems)): ?>
<h2 class="ko">Major problems</h2>
<p>Major problems have been detected and <strong>must</strong> be fixed before continuing:</p>
<ol>
<?php foreach ($majorProblems as $problem): ?>
<li><?php echo $problem->getHelpHtml() ?></li>
<?php endforeach; ?>
</ol>
<?php endif; ?>
<?php if (count($minorProblems)): ?>
<h2>Recommendations</h2>
<p>
<?php if (count($majorProblems)): ?>Additionally, to<?php else: ?>To<?php endif; ?> enhance your Symfony experience,
it’s recommended that you fix the following:
</p>
<ol>
<?php foreach ($minorProblems as $problem): ?>
<li><?php echo $problem->getHelpHtml() ?></li>
<?php endforeach; ?>
</ol>
<?php endif; ?>
<?php if ($symfonyRequirements->hasPhpIniConfigIssue()): ?>
<p id="phpini">*
<?php if ($symfonyRequirements->getPhpIniConfigPath()): ?>
Changes to the <strong>php.ini</strong> file must be done in "<strong><?php echo $symfonyRequirements->getPhpIniConfigPath() ?></strong>".
<?php else: ?>
To change settings, create a "<strong>php.ini</strong>".
<?php endif; ?>
</p>
<?php endif; ?>
<?php if (!count($majorProblems) && !count($minorProblems)): ?>
<p class="ok">Your configuration looks good to run Symfony.</p>
<?php endif; ?>
<ul class="symfony-install-continue">
<?php if (!count($majorProblems)): ?>
<li><a href="app_dev.php/_configurator/">Configure your Symfony Application online</a></li>
<li><a href="app_dev.php/">Bypass configuration and go to the Welcome page</a></li>
<?php endif; ?>
<?php if (count($majorProblems) || count($minorProblems)): ?>
<li><a href="config.php">Re-check configuration</a></li>
<?php endif; ?>
</ul>
</div>
</div>
</div>
<div class="version">Symfony Standard Edition</div>
</div>
</body>
</html>
View
Binary file not shown.
View
@@ -0,0 +1,4 @@
# www.robotstxt.org/
# www.google.com/support/webmasters/bin/answer.py?hl=en&answer=156449
User-agent: *