add missing files for maven plugin test
|
@ -50,7 +50,7 @@ public class RpmPackageRuleTest extends RpmBaseObjectTest {
|
|||
rpmPackage.setMojo(mojo);
|
||||
rpmFileRule = new RpmPackageRule();
|
||||
rpmFileRule.setPackage(rpmPackage);
|
||||
rpmFileRule.setBase("build");
|
||||
rpmFileRule.setBase("files");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -115,7 +115,7 @@ public class RpmPackageRuleTest extends RpmBaseObjectTest {
|
|||
|
||||
@Test
|
||||
public void scanPathAccessor() throws InvalidPathException {
|
||||
String scanPath = String.format("%s%sbuild", new File(testOutputPath).getAbsolutePath(), File.separator);
|
||||
String scanPath = String.format("%s%sfiles", new File(testOutputPath).getAbsolutePath(), File.separator);
|
||||
assertEquals(scanPath, rpmFileRule.getScanPath());
|
||||
}
|
||||
|
||||
|
|
|
@ -47,7 +47,7 @@ public class RpmPackageTest {
|
|||
project.setBuild(projectBuild);
|
||||
PackageRpmMojo mojo = new PackageRpmMojo();
|
||||
mojo.setProject(project);
|
||||
mojo.setBuildPath(String.format("%s%sbuild", testOutputPath, File.separator));
|
||||
mojo.setBuildPath(String.format("%s%sfiles", testOutputPath, File.separator));
|
||||
rpmPackage.setMojo(mojo);
|
||||
}
|
||||
|
||||
|
|
|
@ -164,7 +164,7 @@ public class AbstractRpmMojoTest {
|
|||
|
||||
@Test
|
||||
public void scanMasterFiles() {
|
||||
mojo.setBuildPath(String.format("%s%sbuild", testOutputPath, File.separator));
|
||||
mojo.setBuildPath(String.format("%s%sfiles", testOutputPath, File.separator));
|
||||
mojo.scanMasterFiles();
|
||||
Set<String> masterFiles = mojo.getMasterFiles();
|
||||
assertEquals(65, masterFiles.size());
|
||||
|
|
|
@ -43,7 +43,7 @@ public class ListFilesRpmMojoTest {
|
|||
List<RpmPackage> packages = new ArrayList<>();
|
||||
packages.add(rpmPackage);
|
||||
this.mojo.setPackages(packages);
|
||||
this.mojo.setBuildPath(String.format("%s%sbuild", this.testOutputPath, File.separator));
|
||||
this.mojo.setBuildPath(String.format("%s%sfiles", this.testOutputPath, File.separator));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
@ -33,7 +33,7 @@ public class PackageRpmMojoTest {
|
|||
Build projectBuild = new Build();
|
||||
projectBuild.setDirectory(testOutputPath);
|
||||
project = new MavenProject();
|
||||
project.setGroupId("uk.co.codezen");
|
||||
project.setGroupId("org.xbib");
|
||||
project.setArtifactId("packagerpmmojo-artifact");
|
||||
project.setName("test");
|
||||
project.setUrl("http://www.example.com");
|
||||
|
@ -49,7 +49,7 @@ public class PackageRpmMojoTest {
|
|||
List<RpmPackage> packages = new ArrayList<>();
|
||||
packages.add(rpmPackage);
|
||||
mojo.setPackages(packages);
|
||||
mojo.setBuildPath(String.format("%s%sbuild", testOutputPath, File.separator));
|
||||
mojo.setBuildPath(String.format("%s%sfiles", testOutputPath, File.separator));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
11
maven-plugin-rpm/src/test/resources/files/.gitignore
vendored
Normal file
|
@ -0,0 +1,11 @@
|
|||
/web/bundles/
|
||||
/app/bootstrap.php.cache
|
||||
/app/cache/*
|
||||
/app/config/parameters.yml
|
||||
/app/logs/*
|
||||
!app/cache/.gitkeep
|
||||
!app/logs/.gitkeep
|
||||
/build/
|
||||
/vendor/
|
||||
/bin/
|
||||
/composer.phar
|
170
maven-plugin-rpm/src/test/resources/files/README.md
Normal file
|
@ -0,0 +1,170 @@
|
|||
Symfony Standard Edition
|
||||
========================
|
||||
|
||||
Welcome to the Symfony Standard Edition - a fully-functional Symfony2
|
||||
application that you can use as the skeleton for your new applications.
|
||||
|
||||
This document contains information on how to download, install, and start
|
||||
using Symfony. For a more detailed explanation, see the [Installation][1]
|
||||
chapter of the Symfony Documentation.
|
||||
|
||||
1) Installing the Standard Edition
|
||||
----------------------------------
|
||||
|
||||
When it comes to installing the Symfony Standard Edition, you have the
|
||||
following options.
|
||||
|
||||
### Use Composer (*recommended*)
|
||||
|
||||
As Symfony uses [Composer][2] to manage its dependencies, the recommended way
|
||||
to create a new project is to use it.
|
||||
|
||||
If you don't have Composer yet, download it following the instructions on
|
||||
http://getcomposer.org/ or just run the following command:
|
||||
|
||||
curl -s http://getcomposer.org/installer | php
|
||||
|
||||
Then, use the `create-project` command to generate a new Symfony application:
|
||||
|
||||
php composer.phar create-project symfony/framework-standard-edition path/to/install
|
||||
|
||||
Composer will install Symfony and all its dependencies under the
|
||||
`path/to/install` directory.
|
||||
|
||||
### Download an Archive File
|
||||
|
||||
To quickly test Symfony, you can also download an [archive][3] of the Standard
|
||||
Edition and unpack it somewhere under your web server root directory.
|
||||
|
||||
If you downloaded an archive "without vendors", you also need to install all
|
||||
the necessary dependencies. Download composer (see above) and run the
|
||||
following command:
|
||||
|
||||
php composer.phar install
|
||||
|
||||
2) Checking your System Configuration
|
||||
-------------------------------------
|
||||
|
||||
Before starting coding, make sure that your local system is properly
|
||||
configured for Symfony.
|
||||
|
||||
Execute the `check.php` script from the command line:
|
||||
|
||||
php app/check.php
|
||||
|
||||
The script returns a status code of `0` if all mandatory requirements are met,
|
||||
`1` otherwise.
|
||||
|
||||
Access the `config.php` script from a browser:
|
||||
|
||||
http://localhost/path-to-project/web/config.php
|
||||
|
||||
If you get any warnings or recommendations, fix them before moving on.
|
||||
|
||||
3) Browsing the Demo Application
|
||||
--------------------------------
|
||||
|
||||
Congratulations! You're now ready to use Symfony.
|
||||
|
||||
From the `config.php` page, click the "Bypass configuration and go to the
|
||||
Welcome page" link to load up your first Symfony page.
|
||||
|
||||
You can also use a web-based configurator by clicking on the "Configure your
|
||||
Symfony Application online" link of the `config.php` page.
|
||||
|
||||
To see a real-live Symfony page in action, access the following page:
|
||||
|
||||
web/app_dev.php/demo/hello/Fabien
|
||||
|
||||
4) Getting started with Symfony
|
||||
-------------------------------
|
||||
|
||||
This distribution is meant to be the starting point for your Symfony
|
||||
applications, but it also contains some sample code that you can learn from
|
||||
and play with.
|
||||
|
||||
A great way to start learning Symfony is via the [Quick Tour][4], which will
|
||||
take you through all the basic features of Symfony2.
|
||||
|
||||
Once you're feeling good, you can move onto reading the official
|
||||
[Symfony2 book][5].
|
||||
|
||||
A default bundle, `AcmeDemoBundle`, shows you Symfony2 in action. After
|
||||
playing with it, you can remove it by following these steps:
|
||||
|
||||
* delete the `src/Acme` directory;
|
||||
|
||||
* remove the routing entry referencing AcmeDemoBundle in `app/config/routing_dev.yml`;
|
||||
|
||||
* remove the AcmeDemoBundle from the registered bundles in `app/AppKernel.php`;
|
||||
|
||||
* remove the `web/bundles/acmedemo` directory;
|
||||
|
||||
* empty the `security.yml` file or tweak the security configuration to fit
|
||||
your needs.
|
||||
|
||||
What's inside?
|
||||
---------------
|
||||
|
||||
The Symfony Standard Edition is configured with the following defaults:
|
||||
|
||||
* Twig is the only configured template engine;
|
||||
|
||||
* Doctrine ORM/DBAL is configured;
|
||||
|
||||
* Swiftmailer is configured;
|
||||
|
||||
* Annotations for everything are enabled.
|
||||
|
||||
It comes pre-configured with the following bundles:
|
||||
|
||||
* **FrameworkBundle** - The core Symfony framework bundle
|
||||
|
||||
* [**SensioFrameworkExtraBundle**][6] - Adds several enhancements, including
|
||||
template and routing annotation capability
|
||||
|
||||
* [**DoctrineBundle**][7] - Adds support for the Doctrine ORM
|
||||
|
||||
* [**TwigBundle**][8] - Adds support for the Twig templating engine
|
||||
|
||||
* [**SecurityBundle**][9] - Adds security by integrating Symfony's security
|
||||
component
|
||||
|
||||
* [**SwiftmailerBundle**][10] - Adds support for Swiftmailer, a library for
|
||||
sending emails
|
||||
|
||||
* [**MonologBundle**][11] - Adds support for Monolog, a logging library
|
||||
|
||||
* [**AsseticBundle**][12] - Adds support for Assetic, an asset processing
|
||||
library
|
||||
|
||||
* **WebProfilerBundle** (in dev/test env) - Adds profiling functionality and
|
||||
the web debug toolbar
|
||||
|
||||
* **SensioDistributionBundle** (in dev/test env) - Adds functionality for
|
||||
configuring and working with Symfony distributions
|
||||
|
||||
* [**SensioGeneratorBundle**][13] (in dev/test env) - Adds code generation
|
||||
capabilities
|
||||
|
||||
* **AcmeDemoBundle** (in dev/test env) - A demo bundle with some example
|
||||
code
|
||||
|
||||
All libraries and bundles included in the Symfony Standard Edition are
|
||||
released under the MIT or BSD license.
|
||||
|
||||
Enjoy!
|
||||
|
||||
[1]: http://symfony.com/doc/2.5/book/installation.html
|
||||
[2]: http://getcomposer.org/
|
||||
[3]: http://symfony.com/download
|
||||
[4]: http://symfony.com/doc/2.5/quick_tour/the_big_picture.html
|
||||
[5]: http://symfony.com/doc/2.5/index.html
|
||||
[6]: http://symfony.com/doc/2.5/bundles/SensioFrameworkExtraBundle/index.html
|
||||
[7]: http://symfony.com/doc/2.5/book/doctrine.html
|
||||
[8]: http://symfony.com/doc/2.5/book/templating.html
|
||||
[9]: http://symfony.com/doc/2.5/book/security.html
|
||||
[10]: http://symfony.com/doc/2.5/cookbook/email.html
|
||||
[11]: http://symfony.com/doc/2.5/cookbook/logging/monolog.html
|
||||
[12]: http://symfony.com/doc/2.5/cookbook/assetic/asset_management.html
|
||||
[13]: http://symfony.com/doc/2.5/bundles/SensioGeneratorBundle/index.html
|
30
maven-plugin-rpm/src/test/resources/files/UPGRADE-2.2.md
Normal file
|
@ -0,0 +1,30 @@
|
|||
UPGRADE FROM 2.1 to 2.2
|
||||
=======================
|
||||
|
||||
* The [`web/.htaccess`](https://github.com/symfony/symfony-standard/blob/2.2/web/.htaccess)
|
||||
file has been enhanced substantially to prevent duplicate content with and
|
||||
without `/app.php` in the URI. It also improves functionality when using
|
||||
Apache aliases or when mod_rewrite is not available. So you might want to
|
||||
update your `.htaccess` file as well.
|
||||
|
||||
* The ``_internal`` route is not used any more. It should then be removed
|
||||
from both your routing and security configurations. A ``fragments`` key has
|
||||
been added to the framework configuration and must be specified when ESI or
|
||||
Hinclude are in use. No security configuration is required for this path as
|
||||
by default ESI access is only permitted for trusted hosts and Hinclude
|
||||
access uses an URL signing mechanism.
|
||||
|
||||
```
|
||||
framework:
|
||||
# ...
|
||||
fragments: { path: /_proxy }
|
||||
```
|
||||
|
||||
Functional Tests
|
||||
----------------
|
||||
|
||||
* The profiler has been disabled by default in the test environment. You can
|
||||
enable it again by modifying the ``config_test.yml`` configuration file or
|
||||
even better, you can just enable it for the very next request by calling
|
||||
``$client->enableProfiler()`` when you need the profiler in a test (that
|
||||
speeds up functional tests quite a bit).
|
52
maven-plugin-rpm/src/test/resources/files/UPGRADE-2.3.md
Normal file
|
@ -0,0 +1,52 @@
|
|||
UPGRADE FROM 2.2 to 2.3
|
||||
=======================
|
||||
|
||||
When upgrading Symfony from 2.2 to 2.3, you need to do the following changes
|
||||
to the code that came from the Standard Edition:
|
||||
|
||||
* The debugging tools are not enabled by default anymore and should be added
|
||||
to the
|
||||
[`web/app_dev.php`](https://github.com/symfony/symfony-standard/blob/2.3/web/app_dev.php)
|
||||
front controller manually, just after including the bootstrap cache:
|
||||
|
||||
use Symfony\Component\Debug\Debug;
|
||||
|
||||
Debug::enable();
|
||||
|
||||
You also need to enable debugging in the
|
||||
[`app/console`](https://github.com/symfony/symfony-standard/blob/2.3/app/console)
|
||||
script, after the `$debug` variable is defined:
|
||||
|
||||
use Symfony\Component\Debug\Debug;
|
||||
|
||||
if ($debug) {
|
||||
Debug::enable();
|
||||
}
|
||||
|
||||
* The `parameters.yml` file can now be managed by the
|
||||
`incenteev/composer-parameter-handler` bundle that comes with the 2.3
|
||||
Standard Edition:
|
||||
|
||||
* add `"incenteev/composer-parameter-handler": "~2.0"` to your
|
||||
`composer.json` file;
|
||||
|
||||
* add `/app/config/parameters.yml` to your `.gitignore` file;
|
||||
|
||||
* create a
|
||||
[`app/config/parameters.yml.dist`](https://github.com/symfony/symfony-standard/blob/2.3/app/config/parameters.yml.dist)
|
||||
file with sensible values for all your parameters.
|
||||
|
||||
* It is highly recommended that you switch the minimum stability to `stable`
|
||||
in your `composer.json` file.
|
||||
|
||||
* If you are using Apache, have a look at the new
|
||||
[`.htaccess`](https://github.com/symfony/symfony-standard/blob/2.3/web/.htaccess)
|
||||
configuration and change yours accordingly.
|
||||
|
||||
* In the
|
||||
[`app/autoload.php`](https://github.com/symfony/symfony-standard/blob/2.3/app/autoload.php)
|
||||
file, the section about `intl` should be removed as it is not needed anymore.
|
||||
|
||||
You can also have a look at the
|
||||
[diff](https://github.com/symfony/symfony-standard/compare/v2.2.0%E2%80%A62.3)
|
||||
between the 2.2 version of the Standard Edition and the 2.3 version.
|
9
maven-plugin-rpm/src/test/resources/files/UPGRADE-2.4.md
Normal file
|
@ -0,0 +1,9 @@
|
|||
UPGRADE FROM 2.3 to 2.4
|
||||
=======================
|
||||
|
||||
When upgrading Symfony from 2.3 to 2.4, you need to do the following changes
|
||||
to the code that came from the Standard Edition:
|
||||
|
||||
* We recommend to comment or remove the `firephp` and `chromephp` Monolog
|
||||
handlers as they might cause issues with some configuration (`chromephp`
|
||||
with Nginx for instance).
|
268
maven-plugin-rpm/src/test/resources/files/UPGRADE.md
Normal file
|
@ -0,0 +1,268 @@
|
|||
Symfony Standard Edition Upgrade
|
||||
================================
|
||||
|
||||
From Symfony 2.0 to Symfony 2.1
|
||||
-------------------------------
|
||||
|
||||
### Project Dependencies
|
||||
|
||||
As of Symfony 2.1, project dependencies are managed by
|
||||
[Composer](http://getcomposer.org/):
|
||||
|
||||
* The `bin/vendors` script can be removed as `composer.phar` does all the work
|
||||
now (it is recommended to install it globally on your machine).
|
||||
|
||||
* The `deps` file need to be replaced with the `composer.json` one.
|
||||
|
||||
* The `composer.lock` is the equivalent of the generated `deps.lock` file and
|
||||
it is automatically generated by Composer.
|
||||
|
||||
Download the default
|
||||
[`composer.json`](https://raw.github.com/symfony/symfony-standard/2.1/composer.json)
|
||||
and
|
||||
[`composer.lock`](https://raw.github.com/symfony/symfony-standard/2.1/composer.lock)
|
||||
files for Symfony 2.1 and put them into the main directory of your project. If
|
||||
you have customized your `deps` file, move the added dependencies to the
|
||||
`composer.json` file (many bundles and PHP libraries are already available as
|
||||
Composer packages -- search for them on [Packagist](http://packagist.org/)).
|
||||
|
||||
Remove your current `vendor` directory.
|
||||
|
||||
Finally, run Composer:
|
||||
|
||||
$ composer.phar install
|
||||
|
||||
Note: You must complete the upgrade steps below so composer can successfully generate the autoload files.
|
||||
|
||||
### `app/autoload.php`
|
||||
|
||||
The default `autoload.php` reads as follows (it has been simplified a lot as
|
||||
autoloading for libraries and bundles declared in your `composer.json` file is
|
||||
automatically managed by the Composer autoloader):
|
||||
|
||||
<?php
|
||||
|
||||
use Doctrine\Common\Annotations\AnnotationRegistry;
|
||||
|
||||
$loader = include __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';
|
||||
|
||||
$loader->add('', __DIR__.'/../vendor/symfony/symfony/src/Symfony/Component/Locale/Resources/stubs');
|
||||
}
|
||||
|
||||
AnnotationRegistry::registerLoader(array($loader, 'loadClass'));
|
||||
|
||||
return $loader;
|
||||
|
||||
### `app/config/config.yml`
|
||||
|
||||
The `framework.charset` setting must be removed. If you are not using `UTF-8`
|
||||
for your application, override the `getCharset()` method in your `AppKernel`
|
||||
class instead:
|
||||
|
||||
class AppKernel extends Kernel
|
||||
{
|
||||
public function getCharset()
|
||||
{
|
||||
return 'ISO-8859-1';
|
||||
}
|
||||
|
||||
// ...
|
||||
}
|
||||
|
||||
You might want to add the new `strict_requirements` parameter to
|
||||
`framework.router` (it avoids fatal errors in the production environment when
|
||||
a link cannot be generated):
|
||||
|
||||
framework:
|
||||
router:
|
||||
strict_requirements: "%kernel.debug%"
|
||||
|
||||
You can even disable the requirements check on production with `null` as you should
|
||||
know that the parameters for URL generation always pass the requirements, e.g. by
|
||||
validating them beforehand. This additionally enhances performance. See
|
||||
[config_prod.yml](https://github.com/symfony/symfony-standard/blob/master/app/config/config_prod.yml).
|
||||
|
||||
The `default_locale` parameter is now a setting of the main `framework`
|
||||
configuration (it was under the `framework.session` in 2.0):
|
||||
|
||||
framework:
|
||||
default_locale: "%locale%"
|
||||
|
||||
The `auto_start` setting under `framework.session` must be removed as it is
|
||||
not used anymore (the session is now always started on-demand). If
|
||||
`auto_start` was the only setting under the `framework.session` entry, don't
|
||||
remove it entirely, but set its value to `~` (`~` means `null` in YAML)
|
||||
instead:
|
||||
|
||||
framework:
|
||||
session: ~
|
||||
|
||||
The `trust_proxy_headers` setting was added in the default configuration file
|
||||
(as it should be set to `true` when you install your application behind a
|
||||
reverse proxy):
|
||||
|
||||
framework:
|
||||
trust_proxy_headers: false
|
||||
|
||||
An empty `bundles` entry was added to the `assetic` configuration:
|
||||
|
||||
assetic:
|
||||
bundles: []
|
||||
|
||||
The default `swiftmailer` configuration now has the `spool` setting configured
|
||||
to the `memory` type to defer email sending after the response is sent to the
|
||||
user (recommended for better end-user performance):
|
||||
|
||||
swiftmailer:
|
||||
spool: { type: memory }
|
||||
|
||||
The `jms_security_extra` configuration was moved to the `security.yml`
|
||||
configuration file.
|
||||
|
||||
### `app/config/config_dev.yml`
|
||||
|
||||
An example of how to send all emails to a unique address was added:
|
||||
|
||||
#swiftmailer:
|
||||
# delivery_address: me@example.com
|
||||
|
||||
### `app/config/config_test.yml`
|
||||
|
||||
The `storage_id` setting must be changed to `session.storage.mock_file`:
|
||||
|
||||
framework:
|
||||
session:
|
||||
storage_id: session.storage.mock_file
|
||||
|
||||
### `app/config/parameters.ini`
|
||||
|
||||
The file has been converted to a YAML file which reads as follows:
|
||||
|
||||
parameters:
|
||||
database_driver: pdo_mysql
|
||||
database_host: localhost
|
||||
database_port: ~
|
||||
database_name: symfony
|
||||
database_user: root
|
||||
database_password: ~
|
||||
|
||||
mailer_transport: smtp
|
||||
mailer_host: localhost
|
||||
mailer_user: ~
|
||||
mailer_password: ~
|
||||
|
||||
locale: en
|
||||
secret: ThisTokenIsNotSoSecretChangeIt
|
||||
|
||||
Note that if you convert your parameters file to YAML, you must also change
|
||||
its reference in `app/config/config.yml`.
|
||||
|
||||
### `app/config/routing_dev.yml`
|
||||
|
||||
The `_assetic` entry was removed:
|
||||
|
||||
#_assetic:
|
||||
# resource: .
|
||||
# type: assetic
|
||||
|
||||
### `app/config/security.yml`
|
||||
|
||||
Under `security.access_control`, the default rule for internal routes was changed:
|
||||
|
||||
security:
|
||||
access_control:
|
||||
#- { path: ^/_internal/secure, roles: IS_AUTHENTICATED_ANONYMOUSLY, ip: 127.0.0.1 }
|
||||
|
||||
Under `security.providers`, the `in_memory` example was updated to the following:
|
||||
|
||||
security:
|
||||
providers:
|
||||
in_memory:
|
||||
memory:
|
||||
users:
|
||||
user: { password: userpass, roles: [ 'ROLE_USER' ] }
|
||||
admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] }
|
||||
|
||||
### `app/AppKernel.php`
|
||||
|
||||
The following bundles have been added to the list of default registered bundles:
|
||||
|
||||
new JMS\AopBundle\JMSAopBundle(),
|
||||
new JMS\DiExtraBundle\JMSDiExtraBundle($this),
|
||||
|
||||
You must also rename the DoctrineBundle from:
|
||||
|
||||
new Symfony\Bundle\DoctrineBundle\DoctrineBundle(),
|
||||
|
||||
to:
|
||||
|
||||
new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
|
||||
|
||||
### `web/app.php`
|
||||
|
||||
The default `web/app.php` file now reads as follows:
|
||||
|
||||
<?php
|
||||
|
||||
use Symfony\Component\ClassLoader\ApcClassLoader;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
||||
$loader = require_once __DIR__.'/../app/bootstrap.php.cache';
|
||||
|
||||
// Use APC for autoloading to improve performance.
|
||||
// Change 'sf2' to a unique prefix in order to prevent cache key conflicts
|
||||
// with other applications also using APC.
|
||||
/*
|
||||
$loader = new ApcClassLoader('sf2', $loader);
|
||||
$loader->register(true);
|
||||
*/
|
||||
|
||||
require_once __DIR__.'/../app/AppKernel.php';
|
||||
//require_once __DIR__.'/../app/AppCache.php';
|
||||
|
||||
$kernel = new AppKernel('prod', false);
|
||||
$kernel->loadClassCache();
|
||||
//$kernel = new AppCache($kernel);
|
||||
$request = Request::createFromGlobals();
|
||||
$response = $kernel->handle($request);
|
||||
$response->send();
|
||||
$kernel->terminate($request, $response);
|
||||
|
||||
### `web/app_dev.php`
|
||||
|
||||
The default `web/app_dev.php` file now reads as follows:
|
||||
|
||||
<?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',
|
||||
'::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 = Request::createFromGlobals();
|
||||
$response = $kernel->handle($request);
|
||||
$response->send();
|
||||
$kernel->terminate($request, $response);
|
7
maven-plugin-rpm/src/test/resources/files/app/.htaccess
Normal file
|
@ -0,0 +1,7 @@
|
|||
<IfModule mod_authz_core.c>
|
||||
Require all denied
|
||||
</IfModule>
|
||||
<IfModule !mod_authz_core.c>
|
||||
Order deny,allow
|
||||
Deny from all
|
||||
</IfModule>
|
|
@ -0,0 +1,9 @@
|
|||
<?php
|
||||
|
||||
require_once __DIR__.'/AppKernel.php';
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\HttpCache\HttpCache;
|
||||
|
||||
class AppCache extends HttpCache
|
||||
{
|
||||
}
|
35
maven-plugin-rpm/src/test/resources/files/app/AppKernel.php
Normal file
|
@ -0,0 +1,35 @@
|
|||
<?php
|
||||
|
||||
use Symfony\Component\HttpKernel\Kernel;
|
||||
use Symfony\Component\Config\Loader\LoaderInterface;
|
||||
|
||||
class AppKernel extends Kernel
|
||||
{
|
||||
public function registerBundles()
|
||||
{
|
||||
$bundles = array(
|
||||
new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
|
||||
new Symfony\Bundle\SecurityBundle\SecurityBundle(),
|
||||
new Symfony\Bundle\TwigBundle\TwigBundle(),
|
||||
new Symfony\Bundle\MonologBundle\MonologBundle(),
|
||||
new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),
|
||||
new Symfony\Bundle\AsseticBundle\AsseticBundle(),
|
||||
new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
|
||||
new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
|
||||
);
|
||||
|
||||
if (in_array($this->getEnvironment(), array('dev', 'test'))) {
|
||||
$bundles[] = new Acme\DemoBundle\AcmeDemoBundle();
|
||||
$bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();
|
||||
$bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle();
|
||||
$bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle();
|
||||
}
|
||||
|
||||
return $bundles;
|
||||
}
|
||||
|
||||
public function registerContainerConfiguration(LoaderInterface $loader)
|
||||
{
|
||||
$loader->load(__DIR__.'/config/config_'.$this->getEnvironment().'.yml');
|
||||
}
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<title>{% block title %}Welcome!{% endblock %}</title>
|
||||
{% block stylesheets %}{% endblock %}
|
||||
<link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}" />
|
||||
</head>
|
||||
<body>
|
||||
{% block body %}{% endblock %}
|
||||
{% block javascripts %}{% endblock %}
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,707 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Symfony package.
|
||||
*
|
||||
* (c) Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Users of PHP 5.2 should be able to run the requirements checks.
|
||||
* This is why the file and all classes must be compatible with PHP 5.2+
|
||||
* (e.g. not using namespaces and closures).
|
||||
*
|
||||
* ************** CAUTION **************
|
||||
*
|
||||
* DO NOT EDIT THIS FILE as it will be overridden by Composer as part of
|
||||
* the installation/update process. The original file resides in the
|
||||
* SensioDistributionBundle.
|
||||
*
|
||||
* ************** CAUTION **************
|
||||
*/
|
||||
|
||||
/**
|
||||
* Represents a single PHP requirement, e.g. an installed extension.
|
||||
* It can be a mandatory requirement or an optional recommendation.
|
||||
* There is a special subclass, named PhpIniRequirement, to check a php.ini configuration.
|
||||
*
|
||||
* @author Tobias Schultze <http://tobion.de>
|
||||
*/
|
||||
class Requirement
|
||||
{
|
||||
private $fulfilled;
|
||||
private $testMessage;
|
||||
private $helpText;
|
||||
private $helpHtml;
|
||||
private $optional;
|
||||
|
||||
/**
|
||||
* Constructor that initializes the requirement.
|
||||
*
|
||||
* @param bool $fulfilled Whether the requirement is fulfilled
|
||||
* @param string $testMessage The message for testing the requirement
|
||||
* @param string $helpHtml The help text formatted in HTML for resolving the problem
|
||||
* @param string|null $helpText The help text (when null, it will be inferred from $helpHtml, i.e. stripped from HTML tags)
|
||||
* @param bool $optional Whether this is only an optional recommendation not a mandatory requirement
|
||||
*/
|
||||
public function __construct($fulfilled, $testMessage, $helpHtml, $helpText = null, $optional = false)
|
||||
{
|
||||
$this->fulfilled = (bool) $fulfilled;
|
||||
$this->testMessage = (string) $testMessage;
|
||||
$this->helpHtml = (string) $helpHtml;
|
||||
$this->helpText = null === $helpText ? strip_tags($this->helpHtml) : (string) $helpText;
|
||||
$this->optional = (bool) $optional;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether the requirement is fulfilled.
|
||||
*
|
||||
* @return bool true if fulfilled, otherwise false
|
||||
*/
|
||||
public function isFulfilled()
|
||||
{
|
||||
return $this->fulfilled;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the message for testing the requirement.
|
||||
*
|
||||
* @return string The test message
|
||||
*/
|
||||
public function getTestMessage()
|
||||
{
|
||||
return $this->testMessage;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the help text for resolving the problem
|
||||
*
|
||||
* @return string The help text
|
||||
*/
|
||||
public function getHelpText()
|
||||
{
|
||||
return $this->helpText;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the help text formatted in HTML.
|
||||
*
|
||||
* @return string The HTML help
|
||||
*/
|
||||
public function getHelpHtml()
|
||||
{
|
||||
return $this->helpHtml;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether this is only an optional recommendation and not a mandatory requirement.
|
||||
*
|
||||
* @return bool true if optional, false if mandatory
|
||||
*/
|
||||
public function isOptional()
|
||||
{
|
||||
return $this->optional;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a PHP requirement in form of a php.ini configuration.
|
||||
*
|
||||
* @author Tobias Schultze <http://tobion.de>
|
||||
*/
|
||||
class PhpIniRequirement extends Requirement
|
||||
{
|
||||
/**
|
||||
* Constructor that initializes the requirement.
|
||||
*
|
||||
* @param string $cfgName The configuration name used for ini_get()
|
||||
* @param bool|callback $evaluation Either a boolean indicating whether the configuration should evaluate to true or false,
|
||||
or a callback function receiving the configuration value as parameter to determine the fulfillment of the requirement
|
||||
* @param bool $approveCfgAbsence If true the Requirement will be fulfilled even if the configuration option does not exist, i.e. ini_get() returns false.
|
||||
This is helpful for abandoned configs in later PHP versions or configs of an optional extension, like Suhosin.
|
||||
Example: You require a config to be true but PHP later removes this config and defaults it to true internally.
|
||||
* @param string|null $testMessage The message for testing the requirement (when null and $evaluation is a boolean a default message is derived)
|
||||
* @param string|null $helpHtml The help text formatted in HTML for resolving the problem (when null and $evaluation is a boolean a default help is derived)
|
||||
* @param string|null $helpText The help text (when null, it will be inferred from $helpHtml, i.e. stripped from HTML tags)
|
||||
* @param bool $optional Whether this is only an optional recommendation not a mandatory requirement
|
||||
*/
|
||||
public function __construct($cfgName, $evaluation, $approveCfgAbsence = false, $testMessage = null, $helpHtml = null, $helpText = null, $optional = false)
|
||||
{
|
||||
$cfgValue = ini_get($cfgName);
|
||||
|
||||
if (is_callable($evaluation)) {
|
||||
if (null === $testMessage || null === $helpHtml) {
|
||||
throw new InvalidArgumentException('You must provide the parameters testMessage and helpHtml for a callback evaluation.');
|
||||
}
|
||||
|
||||
$fulfilled = call_user_func($evaluation, $cfgValue);
|
||||
} else {
|
||||
if (null === $testMessage) {
|
||||
$testMessage = sprintf('%s %s be %s in php.ini',
|
||||
$cfgName,
|
||||
$optional ? 'should' : 'must',
|
||||
$evaluation ? 'enabled' : 'disabled'
|
||||
);
|
||||
}
|
||||
|
||||
if (null === $helpHtml) {
|
||||
$helpHtml = sprintf('Set <strong>%s</strong> to <strong>%s</strong> in php.ini<a href="#phpini">*</a>.',
|
||||
$cfgName,
|
||||
$evaluation ? 'on' : 'off'
|
||||
);
|
||||
}
|
||||
|
||||
$fulfilled = $evaluation == $cfgValue;
|
||||
}
|
||||
|
||||
parent::__construct($fulfilled || ($approveCfgAbsence && false === $cfgValue), $testMessage, $helpHtml, $helpText, $optional);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* A RequirementCollection represents a set of Requirement instances.
|
||||
*
|
||||
* @author Tobias Schultze <http://tobion.de>
|
||||
*/
|
||||
class RequirementCollection implements IteratorAggregate
|
||||
{
|
||||
private $requirements = array();
|
||||
|
||||
/**
|
||||
* Gets the current RequirementCollection as an Iterator.
|
||||
*
|
||||
* @return Traversable A Traversable interface
|
||||
*/
|
||||
public function getIterator()
|
||||
{
|
||||
return new ArrayIterator($this->requirements);
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a Requirement.
|
||||
*
|
||||
* @param Requirement $requirement A Requirement instance
|
||||
*/
|
||||
public function add(Requirement $requirement)
|
||||
{
|
||||
$this->requirements[] = $requirement;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a mandatory requirement.
|
||||
*
|
||||
* @param bool $fulfilled Whether the requirement is fulfilled
|
||||
* @param string $testMessage The message for testing the requirement
|
||||
* @param string $helpHtml The help text formatted in HTML for resolving the problem
|
||||
* @param string|null $helpText The help text (when null, it will be inferred from $helpHtml, i.e. stripped from HTML tags)
|
||||
*/
|
||||
public function addRequirement($fulfilled, $testMessage, $helpHtml, $helpText = null)
|
||||
{
|
||||
$this->add(new Requirement($fulfilled, $testMessage, $helpHtml, $helpText, false));
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds an optional recommendation.
|
||||
*
|
||||
* @param bool $fulfilled Whether the recommendation is fulfilled
|
||||
* @param string $testMessage The message for testing the recommendation
|
||||
* @param string $helpHtml The help text formatted in HTML for resolving the problem
|
||||
* @param string|null $helpText The help text (when null, it will be inferred from $helpHtml, i.e. stripped from HTML tags)
|
||||
*/
|
||||
public function addRecommendation($fulfilled, $testMessage, $helpHtml, $helpText = null)
|
||||
{
|
||||
$this->add(new Requirement($fulfilled, $testMessage, $helpHtml, $helpText, true));
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a mandatory requirement in form of a php.ini configuration.
|
||||
*
|
||||
* @param string $cfgName The configuration name used for ini_get()
|
||||
* @param bool|callback $evaluation Either a boolean indicating whether the configuration should evaluate to true or false,
|
||||
or a callback function receiving the configuration value as parameter to determine the fulfillment of the requirement
|
||||
* @param bool $approveCfgAbsence If true the Requirement will be fulfilled even if the configuration option does not exist, i.e. ini_get() returns false.
|
||||
This is helpful for abandoned configs in later PHP versions or configs of an optional extension, like Suhosin.
|
||||
Example: You require a config to be true but PHP later removes this config and defaults it to true internally.
|
||||
* @param string $testMessage The message for testing the requirement (when null and $evaluation is a boolean a default message is derived)
|
||||
* @param string $helpHtml The help text formatted in HTML for resolving the problem (when null and $evaluation is a boolean a default help is derived)
|
||||
* @param string|null $helpText The help text (when null, it will be inferred from $helpHtml, i.e. stripped from HTML tags)
|
||||
*/
|
||||
public function addPhpIniRequirement($cfgName, $evaluation, $approveCfgAbsence = false, $testMessage = null, $helpHtml = null, $helpText = null)
|
||||
{
|
||||
$this->add(new PhpIniRequirement($cfgName, $evaluation, $approveCfgAbsence, $testMessage, $helpHtml, $helpText, false));
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds an optional recommendation in form of a php.ini configuration.
|
||||
*
|
||||
* @param string $cfgName The configuration name used for ini_get()
|
||||
* @param bool|callback $evaluation Either a boolean indicating whether the configuration should evaluate to true or false,
|
||||
or a callback function receiving the configuration value as parameter to determine the fulfillment of the requirement
|
||||
* @param bool $approveCfgAbsence If true the Requirement will be fulfilled even if the configuration option does not exist, i.e. ini_get() returns false.
|
||||
This is helpful for abandoned configs in later PHP versions or configs of an optional extension, like Suhosin.
|
||||
Example: You require a config to be true but PHP later removes this config and defaults it to true internally.
|
||||
* @param string $testMessage The message for testing the requirement (when null and $evaluation is a boolean a default message is derived)
|
||||
* @param string $helpHtml The help text formatted in HTML for resolving the problem (when null and $evaluation is a boolean a default help is derived)
|
||||
* @param string|null $helpText The help text (when null, it will be inferred from $helpHtml, i.e. stripped from HTML tags)
|
||||
*/
|
||||
public function addPhpIniRecommendation($cfgName, $evaluation, $approveCfgAbsence = false, $testMessage = null, $helpHtml = null, $helpText = null)
|
||||
{
|
||||
$this->add(new PhpIniRequirement($cfgName, $evaluation, $approveCfgAbsence, $testMessage, $helpHtml, $helpText, true));
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a requirement collection to the current set of requirements.
|
||||
*
|
||||
* @param RequirementCollection $collection A RequirementCollection instance
|
||||
*/
|
||||
public function addCollection(RequirementCollection $collection)
|
||||
{
|
||||
$this->requirements = array_merge($this->requirements, $collection->all());
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns both requirements and recommendations.
|
||||
*
|
||||
* @return array Array of Requirement instances
|
||||
*/
|
||||
public function all()
|
||||
{
|
||||
return $this->requirements;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns all mandatory requirements.
|
||||
*
|
||||
* @return array Array of Requirement instances
|
||||
*/
|
||||
public function getRequirements()
|
||||
{
|
||||
$array = array();
|
||||
foreach ($this->requirements as $req) {
|
||||
if (!$req->isOptional()) {
|
||||
$array[] = $req;
|
||||
}
|
||||
}
|
||||
|
||||
return $array;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the mandatory requirements that were not met.
|
||||
*
|
||||
* @return array Array of Requirement instances
|
||||
*/
|
||||
public function getFailedRequirements()
|
||||
{
|
||||
$array = array();
|
||||
foreach ($this->requirements as $req) {
|
||||
if (!$req->isFulfilled() && !$req->isOptional()) {
|
||||
$array[] = $req;
|
||||
}
|
||||
}
|
||||
|
||||
return $array;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns all optional recommendations.
|
||||
*
|
||||
* @return array Array of Requirement instances
|
||||
*/
|
||||
public function getRecommendations()
|
||||
{
|
||||
$array = array();
|
||||
foreach ($this->requirements as $req) {
|
||||
if ($req->isOptional()) {
|
||||
$array[] = $req;
|
||||
}
|
||||
}
|
||||
|
||||
return $array;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the recommendations that were not met.
|
||||
*
|
||||
* @return array Array of Requirement instances
|
||||
*/
|
||||
public function getFailedRecommendations()
|
||||
{
|
||||
$array = array();
|
||||
foreach ($this->requirements as $req) {
|
||||
if (!$req->isFulfilled() && $req->isOptional()) {
|
||||
$array[] = $req;
|
||||
}
|
||||
}
|
||||
|
||||
return $array;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether a php.ini configuration is not correct.
|
||||
*
|
||||
* @return bool php.ini configuration problem?
|
||||
*/
|
||||
public function hasPhpIniConfigIssue()
|
||||
{
|
||||
foreach ($this->requirements as $req) {
|
||||
if (!$req->isFulfilled() && $req instanceof PhpIniRequirement) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the PHP configuration file (php.ini) path.
|
||||
*
|
||||
* @return string|false php.ini file path
|
||||
*/
|
||||
public function getPhpIniConfigPath()
|
||||
{
|
||||
return get_cfg_var('cfg_file_path');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This class specifies all requirements and optional recommendations that
|
||||
* are necessary to run the Symfony Standard Edition.
|
||||
*
|
||||
* @author Tobias Schultze <http://tobion.de>
|
||||
* @author Fabien Potencier <fabien@symfony.com>
|
||||
*/
|
||||
class SymfonyRequirements extends RequirementCollection
|
||||
{
|
||||
const REQUIRED_PHP_VERSION = '5.3.3';
|
||||
|
||||
/**
|
||||
* Constructor that initializes the requirements.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
/* mandatory requirements follow */
|
||||
|
||||
$installedPhpVersion = phpversion();
|
||||
|
||||
$this->addRequirement(
|
||||
version_compare($installedPhpVersion, self::REQUIRED_PHP_VERSION, '>='),
|
||||
sprintf('PHP version must be at least %s (%s installed)', self::REQUIRED_PHP_VERSION, $installedPhpVersion),
|
||||
sprintf('You are running PHP version "<strong>%s</strong>", but Symfony needs at least PHP "<strong>%s</strong>" to run.
|
||||
Before using Symfony, upgrade your PHP installation, preferably to the latest version.',
|
||||
$installedPhpVersion, self::REQUIRED_PHP_VERSION),
|
||||
sprintf('Install PHP %s or newer (installed version is %s)', self::REQUIRED_PHP_VERSION, $installedPhpVersion)
|
||||
);
|
||||
|
||||
$this->addRequirement(
|
||||
version_compare($installedPhpVersion, '5.3.16', '!='),
|
||||
'PHP version must not be 5.3.16 as Symfony won\'t work properly with it',
|
||||
'Install PHP 5.3.17 or newer (or downgrade to an earlier PHP version)'
|
||||
);
|
||||
|
||||
$this->addRequirement(
|
||||
is_dir(__DIR__.'/../vendor/composer'),
|
||||
'Vendor libraries must be installed',
|
||||
'Vendor libraries are missing. Install composer following instructions from <a href="http://getcomposer.org/">http://getcomposer.org/</a>. '.
|
||||
'Then run "<strong>php composer.phar install</strong>" to install them.'
|
||||
);
|
||||
|
||||
$cacheDir = is_dir(__DIR__.'/../var/cache') ? __DIR__.'/../var/cache' : __DIR__.'/cache';
|
||||
|
||||
$this->addRequirement(
|
||||
is_writable($cacheDir),
|
||||
'app/cache/ or var/cache/ directory must be writable',
|
||||
'Change the permissions of either "<strong>app/cache/</strong>" or "<strong>var/cache/</strong>" directory so that the web server can write into it.'
|
||||
);
|
||||
|
||||
$logsDir = is_dir(__DIR__.'/../var/logs') ? __DIR__.'/../var/logs' : __DIR__.'/logs';
|
||||
|
||||
$this->addRequirement(
|
||||
is_writable($logsDir),
|
||||
'app/logs/ or var/logs/ directory must be writable',
|
||||
'Change the permissions of either "<strong>app/logs/</strong>" or "<strong>var/logs/</strong>" directory so that the web server can write into it.'
|
||||
);
|
||||
|
||||
$this->addPhpIniRequirement(
|
||||
'date.timezone', true, false,
|
||||
'date.timezone setting must be set',
|
||||
'Set the "<strong>date.timezone</strong>" setting in php.ini<a href="#phpini">*</a> (like Europe/Paris).'
|
||||
);
|
||||
|
||||
if (version_compare($installedPhpVersion, self::REQUIRED_PHP_VERSION, '>=')) {
|
||||
$timezones = array();
|
||||
foreach (DateTimeZone::listAbbreviations() as $abbreviations) {
|
||||
foreach ($abbreviations as $abbreviation) {
|
||||
$timezones[$abbreviation['timezone_id']] = true;
|
||||
}
|
||||
}
|
||||
|
||||
$this->addRequirement(
|
||||
isset($timezones[date_default_timezone_get()]),
|
||||
sprintf('Configured default timezone "%s" must be supported by your installation of PHP', date_default_timezone_get()),
|
||||
'Your default timezone is not supported by PHP. Check for typos in your <strong>php.ini</strong> file and have a look at the list of deprecated timezones at <a href="http://php.net/manual/en/timezones.others.php">http://php.net/manual/en/timezones.others.php</a>.'
|
||||
);
|
||||
}
|
||||
|
||||
$this->addRequirement(
|
||||
function_exists('json_encode'),
|
||||
'json_encode() must be available',
|
||||
'Install and enable the <strong>JSON</strong> extension.'
|
||||
);
|
||||
|
||||
$this->addRequirement(
|
||||
function_exists('session_start'),
|
||||
'session_start() must be available',
|
||||
'Install and enable the <strong>session</strong> extension.'
|
||||
);
|
||||
|
||||
$this->addRequirement(
|
||||
function_exists('ctype_alpha'),
|
||||
'ctype_alpha() must be available',
|
||||
'Install and enable the <strong>ctype</strong> extension.'
|
||||
);
|
||||
|
||||
$this->addRequirement(
|
||||
function_exists('token_get_all'),
|
||||
'token_get_all() must be available',
|
||||
'Install and enable the <strong>Tokenizer</strong> extension.'
|
||||
);
|
||||
|
||||
$this->addRequirement(
|
||||
function_exists('simplexml_import_dom'),
|
||||
'simplexml_import_dom() must be available',
|
||||
'Install and enable the <strong>SimpleXML</strong> extension.'
|
||||
);
|
||||
|
||||
if (function_exists('apc_store') && ini_get('apc.enabled')) {
|
||||
if (version_compare($installedPhpVersion, '5.4.0', '>=')) {
|
||||
$this->addRequirement(
|
||||
version_compare(phpversion('apc'), '3.1.13', '>='),
|
||||
'APC version must be at least 3.1.13 when using PHP 5.4',
|
||||
'Upgrade your <strong>APC</strong> extension (3.1.13+).'
|
||||
);
|
||||
} else {
|
||||
$this->addRequirement(
|
||||
version_compare(phpversion('apc'), '3.0.17', '>='),
|
||||
'APC version must be at least 3.0.17',
|
||||
'Upgrade your <strong>APC</strong> extension (3.0.17+).'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$this->addPhpIniRequirement('detect_unicode', false);
|
||||
|
||||
if (extension_loaded('suhosin')) {
|
||||
$this->addPhpIniRequirement(
|
||||
'suhosin.executor.include.whitelist',
|
||||
create_function('$cfgValue', 'return false !== stripos($cfgValue, "phar");'),
|
||||
false,
|
||||
'suhosin.executor.include.whitelist must be configured correctly in php.ini',
|
||||
'Add "<strong>phar</strong>" to <strong>suhosin.executor.include.whitelist</strong> in php.ini<a href="#phpini">*</a>.'
|
||||
);
|
||||
}
|
||||
|
||||
if (extension_loaded('xdebug')) {
|
||||
$this->addPhpIniRequirement(
|
||||
'xdebug.show_exception_trace', false, true
|
||||
);
|
||||
|
||||
$this->addPhpIniRequirement(
|
||||
'xdebug.scream', false, true
|
||||
);
|
||||
|
||||
$this->addPhpIniRecommendation(
|
||||
'xdebug.max_nesting_level',
|
||||
create_function('$cfgValue', 'return $cfgValue > 100;'),
|
||||
true,
|
||||
'xdebug.max_nesting_level should be above 100 in php.ini',
|
||||
'Set "<strong>xdebug.max_nesting_level</strong>" to e.g. "<strong>250</strong>" in php.ini<a href="#phpini">*</a> to stop Xdebug\'s infinite recursion protection erroneously throwing a fatal error in your project.'
|
||||
);
|
||||
}
|
||||
|
||||
$pcreVersion = defined('PCRE_VERSION') ? (float) PCRE_VERSION : null;
|
||||
|
||||
$this->addRequirement(
|
||||
null !== $pcreVersion,
|
||||
'PCRE extension must be available',
|
||||
'Install the <strong>PCRE</strong> extension (version 8.0+).'
|
||||
);
|
||||
|
||||
/* optional recommendations follow */
|
||||
|
||||
$this->addRecommendation(
|
||||
file_get_contents(__FILE__) === file_get_contents(__DIR__.'/../vendor/sensio/distribution-bundle/Sensio/Bundle/DistributionBundle/Resources/skeleton/app/SymfonyRequirements.php'),
|
||||
'Requirements file should be up-to-date',
|
||||
'Your requirements file is outdated. Run composer install and re-check your configuration.'
|
||||
);
|
||||
|
||||
$this->addRecommendation(
|
||||
version_compare($installedPhpVersion, '5.3.4', '>='),
|
||||
'You should use at least PHP 5.3.4 due to PHP bug #52083 in earlier versions',
|
||||
'Your project might malfunction randomly due to PHP bug #52083 ("Notice: Trying to get property of non-object"). Install PHP 5.3.4 or newer.'
|
||||
);
|
||||
|
||||
$this->addRecommendation(
|
||||
version_compare($installedPhpVersion, '5.3.8', '>='),
|
||||
'When using annotations you should have at least PHP 5.3.8 due to PHP bug #55156',
|
||||
'Install PHP 5.3.8 or newer if your project uses annotations.'
|
||||
);
|
||||
|
||||
$this->addRecommendation(
|
||||
version_compare($installedPhpVersion, '5.4.0', '!='),
|
||||
'You should not use PHP 5.4.0 due to the PHP bug #61453',
|
||||
'Your project might not work properly due to the PHP bug #61453 ("Cannot dump definitions which have method calls"). Install PHP 5.4.1 or newer.'
|
||||
);
|
||||
|
||||
$this->addRecommendation(
|
||||
version_compare($installedPhpVersion, '5.4.11', '>='),
|
||||
'When using the logout handler from the Symfony Security Component, you should have at least PHP 5.4.11 due to PHP bug #63379 (as a workaround, you can also set invalidate_session to false in the security logout handler configuration)',
|
||||
'Install PHP 5.4.11 or newer if your project uses the logout handler from the Symfony Security Component.'
|
||||
);
|
||||
|
||||
$this->addRecommendation(
|
||||
(version_compare($installedPhpVersion, '5.3.18', '>=') && version_compare($installedPhpVersion, '5.4.0', '<'))
|
||||
||
|
||||
version_compare($installedPhpVersion, '5.4.8', '>='),
|
||||
'You should use PHP 5.3.18+ or PHP 5.4.8+ to always get nice error messages for fatal errors in the development environment due to PHP bug #61767/#60909',
|
||||
'Install PHP 5.3.18+ or PHP 5.4.8+ if you want nice error messages for all fatal errors in the development environment.'
|
||||
);
|
||||
|
||||
if (null !== $pcreVersion) {
|
||||
$this->addRecommendation(
|
||||
$pcreVersion >= 8.0,
|
||||
sprintf('PCRE extension should be at least version 8.0 (%s installed)', $pcreVersion),
|
||||
'<strong>PCRE 8.0+</strong> is preconfigured in PHP since 5.3.2 but you are using an outdated version of it. Symfony probably works anyway but it is recommended to upgrade your PCRE extension.'
|
||||
);
|
||||
}
|
||||
|
||||
$this->addRecommendation(
|
||||
class_exists('DomDocument'),
|
||||
'PHP-XML module should be installed',
|
||||
'Install and enable the <strong>PHP-XML</strong> module.'
|
||||
);
|
||||
|
||||
$this->addRecommendation(
|
||||
function_exists('mb_strlen'),
|
||||
'mb_strlen() should be available',
|
||||
'Install and enable the <strong>mbstring</strong> extension.'
|
||||
);
|
||||
|
||||
$this->addRecommendation(
|
||||
function_exists('iconv'),
|
||||
'iconv() should be available',
|
||||
'Install and enable the <strong>iconv</strong> extension.'
|
||||
);
|
||||
|
||||
$this->addRecommendation(
|
||||
function_exists('utf8_decode'),
|
||||
'utf8_decode() should be available',
|
||||
'Install and enable the <strong>XML</strong> extension.'
|
||||
);
|
||||
|
||||
$this->addRecommendation(
|
||||
function_exists('filter_var'),
|
||||
'filter_var() should be available',
|
||||
'Install and enable the <strong>filter</strong> extension.'
|
||||
);
|
||||
|
||||
if (!defined('PHP_WINDOWS_VERSION_BUILD')) {
|
||||
$this->addRecommendation(
|
||||
function_exists('posix_isatty'),
|
||||
'posix_isatty() should be available',
|
||||
'Install and enable the <strong>php_posix</strong> extension (used to colorize the CLI output).'
|
||||
);
|
||||
}
|
||||
|
||||
$this->addRecommendation(
|
||||
class_exists('Locale'),
|
||||
'intl extension should be available',
|
||||
'Install and enable the <strong>intl</strong> extension (used for validators).'
|
||||
);
|
||||
|
||||
if (class_exists('Collator')) {
|
||||
$this->addRecommendation(
|
||||
null !== new Collator('fr_FR'),
|
||||
'intl extension should be correctly configured',
|
||||
'The intl extension does not behave properly. This problem is typical on PHP 5.3.X x64 WIN builds.'
|
||||
);
|
||||
}
|
||||
|
||||
if (class_exists('Locale')) {
|
||||
if (defined('INTL_ICU_VERSION')) {
|
||||
$version = INTL_ICU_VERSION;
|
||||
} else {
|
||||
$reflector = new ReflectionExtension('intl');
|
||||
|
||||
ob_start();
|
||||
$reflector->info();
|
||||
$output = strip_tags(ob_get_clean());
|
||||
|
||||
preg_match('/^ICU version +(?:=> )?(.*)$/m', $output, $matches);
|
||||
$version = $matches[1];
|
||||
}
|
||||
|
||||
$this->addRecommendation(
|
||||
version_compare($version, '4.0', '>='),
|
||||
'intl ICU version should be at least 4+',
|
||||
'Upgrade your <strong>intl</strong> extension with a newer ICU version (4+).'
|
||||
);
|
||||
}
|
||||
|
||||
$accelerator =
|
||||
(extension_loaded('eaccelerator') && ini_get('eaccelerator.enable'))
|
||||
||
|
||||
(extension_loaded('apc') && ini_get('apc.enabled'))
|
||||
||
|
||||
(extension_loaded('Zend Optimizer+') && ini_get('zend_optimizerplus.enable'))
|
||||
||
|
||||
(extension_loaded('Zend OPcache') && ini_get('opcache.enable'))
|
||||
||
|
||||
(extension_loaded('xcache') && ini_get('xcache.cacher'))
|
||||
||
|
||||
(extension_loaded('wincache') && ini_get('wincache.ocenabled'))
|
||||
;
|
||||
|
||||
$this->addRecommendation(
|
||||
$accelerator,
|
||||
'a PHP accelerator should be installed',
|
||||
'Install and/or enable a <strong>PHP accelerator</strong> (highly recommended).'
|
||||
);
|
||||
|
||||
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
|
||||
$this->addPhpIniRecommendation(
|
||||
'realpath_cache_size',
|
||||
create_function('$cfgValue', 'return (int) $cfgValue > 1000;'),
|
||||
false,
|
||||
'realpath_cache_size should be above 1024 in php.ini',
|
||||
'Set "<strong>realpath_cache_size</strong>" to e.g. "<strong>1024</strong>" in php.ini<a href="#phpini">*</a> to improve performance on windows.'
|
||||
);
|
||||
}
|
||||
|
||||
$this->addPhpIniRecommendation('short_open_tag', false);
|
||||
|
||||
$this->addPhpIniRecommendation('magic_quotes_gpc', false, true);
|
||||
|
||||
$this->addPhpIniRecommendation('register_globals', false, true);
|
||||
|
||||
$this->addPhpIniRecommendation('session.auto_start', false);
|
||||
|
||||
$this->addRecommendation(
|
||||
class_exists('PDO'),
|
||||
'PDO should be installed',
|
||||
'Install <strong>PDO</strong> (mandatory for Doctrine).'
|
||||
);
|
||||
|
||||
if (class_exists('PDO')) {
|
||||
$drivers = PDO::getAvailableDrivers();
|
||||
$this->addRecommendation(
|
||||
count($drivers) > 0,
|
||||
sprintf('PDO should have some drivers installed (currently available: %s)', count($drivers) ? implode(', ', $drivers) : 'none'),
|
||||
'Install <strong>PDO drivers</strong> (mandatory for Doctrine).'
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Symfony package.
|
||||
*
|
||||
* (c) Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace SymfonyStandard;
|
||||
|
||||
use Composer\Script\CommandEvent;
|
||||
|
||||
class Composer
|
||||
{
|
||||
public static function hookRootPackageInstall(CommandEvent $event)
|
||||
{
|
||||
$event->getComposer()->getEventDispatcher()->addSubscriber(new RootPackageInstallSubscriber());
|
||||
}
|
||||
}
|
|
@ -0,0 +1,40 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Symfony package.
|
||||
*
|
||||
* (c) Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace SymfonyStandard;
|
||||
|
||||
use Composer\EventDispatcher\EventSubscriberInterface;
|
||||
use Composer\Script\ScriptEvents;
|
||||
use Composer\Script\CommandEvent;
|
||||
use Sensio\Bundle\DistributionBundle\Composer\ScriptHandler;
|
||||
|
||||
class RootPackageInstallSubscriber implements EventSubscriberInterface
|
||||
{
|
||||
public static function installAcmeDemoBundle(CommandEvent $event)
|
||||
{
|
||||
ScriptHandler::installAcmeDemoBundle($event);
|
||||
}
|
||||
|
||||
public static function setupNewDirectoryStructure(CommandEvent $event)
|
||||
{
|
||||
ScriptHandler::defineDirectoryStructure($event);
|
||||
}
|
||||
|
||||
public static function getSubscribedEvents()
|
||||
{
|
||||
return array(
|
||||
ScriptEvents::POST_INSTALL_CMD => array(
|
||||
array('setupNewDirectoryStructure', 512),
|
||||
array('installAcmeDemoBundle', 0)
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
13
maven-plugin-rpm/src/test/resources/files/app/autoload.php
Normal file
|
@ -0,0 +1,13 @@
|
|||
<?php
|
||||
|
||||
use Doctrine\Common\Annotations\AnnotationRegistry;
|
||||
use Composer\Autoload\ClassLoader;
|
||||
|
||||
/**
|
||||
* @var ClassLoader $loader
|
||||
*/
|
||||
$loader = require __DIR__.'/../vendor/autoload.php';
|
||||
|
||||
AnnotationRegistry::registerLoader(array($loader, 'loadClass'));
|
||||
|
||||
return $loader;
|
0
maven-plugin-rpm/src/test/resources/files/app/cache/.gitkeep
vendored
Normal file
142
maven-plugin-rpm/src/test/resources/files/app/check.php
Normal file
|
@ -0,0 +1,142 @@
|
|||
<?php
|
||||
|
||||
require_once dirname(__FILE__).'/SymfonyRequirements.php';
|
||||
|
||||
$lineSize = 70;
|
||||
$symfonyRequirements = new SymfonyRequirements();
|
||||
$iniPath = $symfonyRequirements->getPhpIniConfigPath();
|
||||
|
||||
echo_title('Symfony2 Requirements Checker');
|
||||
|
||||
echo '> PHP is using the following php.ini file:'.PHP_EOL;
|
||||
if ($iniPath) {
|
||||
echo_style('green', ' '.$iniPath);
|
||||
} else {
|
||||
echo_style('warning', ' WARNING: No configuration file (php.ini) used by PHP!');
|
||||
}
|
||||
|
||||
echo PHP_EOL.PHP_EOL;
|
||||
|
||||
echo '> Checking Symfony requirements:'.PHP_EOL.' ';
|
||||
|
||||
$messages = array();
|
||||
foreach ($symfonyRequirements->getRequirements() as $req) {
|
||||
/** @var $req Requirement */
|
||||
if ($helpText = get_error_message($req, $lineSize)) {
|
||||
echo_style('red', 'E');
|
||||
$messages['error'][] = $helpText;
|
||||
} else {
|
||||
echo_style('green', '.');
|
||||
}
|
||||
}
|
||||
|
||||
$checkPassed = empty($messages['error']);
|
||||
|
||||
foreach ($symfonyRequirements->getRecommendations() as $req) {
|
||||
if ($helpText = get_error_message($req, $lineSize)) {
|
||||
echo_style('yellow', 'W');
|
||||
$messages['warning'][] = $helpText;
|
||||
} else {
|
||||
echo_style('green', '.');
|
||||
}
|
||||
}
|
||||
|
||||
if ($checkPassed) {
|
||||
echo_block('success', 'OK', 'Your system is ready to run Symfony2 projects', true);
|
||||
} else {
|
||||
echo_block('error', 'ERROR', 'Your system is not ready to run Symfony2 projects', true);
|
||||
|
||||
echo_title('Fix the following mandatory requirements', 'red');
|
||||
|
||||
foreach ($messages['error'] as $helpText) {
|
||||
echo ' * '.$helpText.PHP_EOL;
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($messages['warning'])) {
|
||||
echo_title('Optional recommendations to improve your setup', 'yellow');
|
||||
|
||||
foreach ($messages['warning'] as $helpText) {
|
||||
echo ' * '.$helpText.PHP_EOL;
|
||||
}
|
||||
}
|
||||
|
||||
echo PHP_EOL;
|
||||
echo_style('title', 'Note');
|
||||
echo ' The command console could use a different php.ini file'.PHP_EOL;
|
||||
echo_style('title', '~~~~');
|
||||
echo ' than the one used with your web server. To be on the'.PHP_EOL;
|
||||
echo ' safe side, please check the requirements from your web'.PHP_EOL;
|
||||
echo ' server using the ';
|
||||
echo_style('yellow', 'web/config.php');
|
||||
echo ' script.'.PHP_EOL;
|
||||
echo PHP_EOL;
|
||||
|
||||
exit($checkPassed ? 0 : 1);
|
||||
|
||||
function get_error_message(Requirement $requirement, $lineSize)
|
||||
{
|
||||
if ($requirement->isFulfilled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
$errorMessage = wordwrap($requirement->getTestMessage(), $lineSize - 3, PHP_EOL.' ').PHP_EOL;
|
||||
$errorMessage .= ' > '.wordwrap($requirement->getHelpText(), $lineSize - 5, PHP_EOL.' > ').PHP_EOL;
|
||||
|
||||
return $errorMessage;
|
||||
}
|
||||
|
||||
function echo_title($title, $style = null)
|
||||
{
|
||||
$style = $style ?: 'title';
|
||||
|
||||
echo PHP_EOL;
|
||||
echo_style($style, $title.PHP_EOL);
|
||||
echo_style($style, str_repeat('~', strlen($title)).PHP_EOL);
|
||||
echo PHP_EOL;
|
||||
}
|
||||
|
||||
function echo_style($style, $message)
|
||||
{
|
||||
// ANSI color codes
|
||||
$styles = array(
|
||||
'reset' => "\033[0m",
|
||||
'red' => "\033[31m",
|
||||
'green' => "\033[32m",
|
||||
'yellow' => "\033[33m",
|
||||
'error' => "\033[37;41m",
|
||||
'success' => "\033[37;42m",
|
||||
'title' => "\033[34m",
|
||||
);
|
||||
$supports = has_color_support();
|
||||
|
||||
echo ($supports ? $styles[$style] : '').$message.($supports ? $styles['reset'] : '');
|
||||
}
|
||||
|
||||
function echo_block($style, $title, $message)
|
||||
{
|
||||
$message = ' '.trim($message).' ';
|
||||
$width = strlen($message);
|
||||
|
||||
echo PHP_EOL.PHP_EOL;
|
||||
|
||||
echo_style($style, str_repeat(' ', $width).PHP_EOL);
|
||||
echo_style($style, str_pad(' ['.$title.']', $width, ' ', STR_PAD_RIGHT).PHP_EOL);
|
||||
echo_style($style, str_pad($message, $width, ' ', STR_PAD_RIGHT).PHP_EOL);
|
||||
echo_style($style, str_repeat(' ', $width).PHP_EOL);
|
||||
}
|
||||
|
||||
function has_color_support()
|
||||
{
|
||||
static $support;
|
||||
|
||||
if (null === $support) {
|
||||
if (DIRECTORY_SEPARATOR == '\\') {
|
||||
$support = false !== getenv('ANSICON') || 'ON' === getenv('ConEmuANSI');
|
||||
} else {
|
||||
$support = function_exists('posix_isatty') && @posix_isatty(STDOUT);
|
||||
}
|
||||
}
|
||||
|
||||
return $support;
|
||||
}
|
|
@ -0,0 +1,72 @@
|
|||
imports:
|
||||
- { resource: parameters.yml }
|
||||
- { resource: security.yml }
|
||||
|
||||
framework:
|
||||
#esi: ~
|
||||
#translator: { fallback: "%locale%" }
|
||||
secret: "%secret%"
|
||||
router:
|
||||
resource: "%kernel.root_dir%/config/routing.yml"
|
||||
strict_requirements: ~
|
||||
form: ~
|
||||
csrf_protection: ~
|
||||
validation: { enable_annotations: true }
|
||||
templating:
|
||||
engines: ['twig']
|
||||
#assets_version: SomeVersionScheme
|
||||
default_locale: "%locale%"
|
||||
trusted_hosts: ~
|
||||
trusted_proxies: ~
|
||||
session:
|
||||
# handler_id set to null will use default session handler from php.ini
|
||||
handler_id: ~
|
||||
fragments: ~
|
||||
http_method_override: true
|
||||
|
||||
# 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:
|
||||
# 1. add the path in parameters.yml
|
||||
# e.g. database_path: "%kernel.root_dir%/data/data.db3"
|
||||
# 2. Uncomment database_path in parameters.yml.dist
|
||||
# 3. Uncomment next line:
|
||||
# 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 }
|
|
@ -0,0 +1,36 @@
|
|||
imports:
|
||||
- { resource: config.yml }
|
||||
|
||||
framework:
|
||||
router:
|
||||
resource: "%kernel.root_dir%/config/routing_dev.yml"
|
||||
strict_requirements: true
|
||||
profiler: { only_exceptions: false }
|
||||
|
||||
web_profiler:
|
||||
toolbar: "%debug_toolbar%"
|
||||
intercept_redirects: "%debug_redirects%"
|
||||
|
||||
monolog:
|
||||
handlers:
|
||||
main:
|
||||
type: stream
|
||||
path: "%kernel.logs_dir%/%kernel.environment%.log"
|
||||
level: debug
|
||||
console:
|
||||
type: console
|
||||
bubble: false
|
||||
# uncomment to get logging in your browser
|
||||
# you may have to allow bigger header sizes in your Web server configuration
|
||||
#firephp:
|
||||
# type: firephp
|
||||
# level: info
|
||||
#chromephp:
|
||||
# type: chromephp
|
||||
# level: info
|
||||
|
||||
assetic:
|
||||
use_controller: "%use_assetic_controller%"
|
||||
|
||||
#swiftmailer:
|
||||
# delivery_address: me@example.com
|
|
@ -0,0 +1,25 @@
|
|||
imports:
|
||||
- { resource: config.yml }
|
||||
|
||||
#framework:
|
||||
# validation:
|
||||
# cache: apc
|
||||
|
||||
#doctrine:
|
||||
# orm:
|
||||
# metadata_cache_driver: apc
|
||||
# result_cache_driver: apc
|
||||
# query_cache_driver: apc
|
||||
|
||||
monolog:
|
||||
handlers:
|
||||
main:
|
||||
type: fingers_crossed
|
||||
action_level: error
|
||||
handler: nested
|
||||
nested:
|
||||
type: stream
|
||||
path: "%kernel.logs_dir%/%kernel.environment%.log"
|
||||
level: debug
|
||||
console:
|
||||
type: console
|
|
@ -0,0 +1,16 @@
|
|||
imports:
|
||||
- { resource: config_dev.yml }
|
||||
|
||||
framework:
|
||||
test: ~
|
||||
session:
|
||||
storage_id: session.storage.mock_file
|
||||
profiler:
|
||||
collect: false
|
||||
|
||||
web_profiler:
|
||||
toolbar: false
|
||||
intercept_redirects: false
|
||||
|
||||
swiftmailer:
|
||||
disable_delivery: true
|
|
@ -0,0 +1,24 @@
|
|||
# This file is a "template" of what your parameters.yml file should look like
|
||||
parameters:
|
||||
database_driver: pdo_mysql
|
||||
database_host: 127.0.0.1
|
||||
database_port: ~
|
||||
database_name: symfony
|
||||
database_user: root
|
||||
database_password: ~
|
||||
# You should uncomment this if you want use pdo_sqlite
|
||||
# database_path: "%kernel.root_dir%/data.db3"
|
||||
|
||||
mailer_transport: smtp
|
||||
mailer_host: 127.0.0.1
|
||||
mailer_user: ~
|
||||
mailer_password: ~
|
||||
|
||||
locale: en
|
||||
|
||||
# A secret key that's used to generate certain security-related tokens
|
||||
secret: ThisTokenIsNotSoSecretChangeIt
|
||||
|
||||
debug_toolbar: true
|
||||
debug_redirects: false
|
||||
use_assetic_controller: true
|
|
@ -0,0 +1,18 @@
|
|||
_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
|
||||
|
||||
# AcmeDemoBundle routes (to be removed)
|
||||
_acme_demo:
|
||||
resource: "@AcmeDemoBundle/Resources/config/routing.yml"
|
|
@ -0,0 +1,52 @@
|
|||
# you can read more about security in the related section of the documentation
|
||||
# http://symfony.com/doc/current/book/security.html
|
||||
security:
|
||||
# http://symfony.com/doc/current/book/security.html#encoding-the-user-s-password
|
||||
encoders:
|
||||
Symfony\Component\Security\Core\User\User: plaintext
|
||||
|
||||
# http://symfony.com/doc/current/book/security.html#hierarchical-roles
|
||||
role_hierarchy:
|
||||
ROLE_ADMIN: ROLE_USER
|
||||
ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
|
||||
|
||||
# http://symfony.com/doc/current/book/security.html#where-do-users-come-from-user-providers
|
||||
providers:
|
||||
in_memory:
|
||||
memory:
|
||||
users:
|
||||
user: { password: userpass, roles: [ 'ROLE_USER' ] }
|
||||
admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] }
|
||||
|
||||
# the main part of the security, where you can set up firewalls
|
||||
# for specific sections of your app
|
||||
firewalls:
|
||||
# disables authentication for assets and the profiler, adapt it according to your needs
|
||||
dev:
|
||||
pattern: ^/(_(profiler|wdt)|css|images|js)/
|
||||
security: false
|
||||
# the login page has to be accessible for everybody
|
||||
demo_login:
|
||||
pattern: ^/demo/secured/login$
|
||||
security: false
|
||||
|
||||
# secures part of the application
|
||||
demo_secured_area:
|
||||
pattern: ^/demo/secured/
|
||||
# it's important to notice that in this case _demo_security_check and _demo_login
|
||||
# are route names and that they are specified in the AcmeDemoBundle
|
||||
form_login:
|
||||
check_path: _demo_security_check
|
||||
login_path: _demo_login
|
||||
logout:
|
||||
path: _demo_logout
|
||||
target: _demo
|
||||
#anonymous: ~
|
||||
#http_basic:
|
||||
# realm: "Secured Demo Area"
|
||||
|
||||
# with these settings you can restrict or allow access for different parts
|
||||
# of your application based on roles, ip, host or methods
|
||||
# http://symfony.com/doc/current/book/security.html#security-book-access-control-matching-options
|
||||
access_control:
|
||||
#- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
|
27
maven-plugin-rpm/src/test/resources/files/app/console
Executable file
|
@ -0,0 +1,27 @@
|
|||
#!/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;
|
||||
use Symfony\Component\Debug\Debug;
|
||||
|
||||
$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';
|
||||
|
||||
if ($debug) {
|
||||
Debug::enable();
|
||||
}
|
||||
|
||||
$kernel = new AppKernel($env, $debug);
|
||||
$application = new Application($kernel);
|
||||
$application->run($input);
|
|
@ -0,0 +1,34 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!-- http://phpunit.de/manual/4.1/en/appendixes.configuration.html -->
|
||||
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd"
|
||||
backupGlobals="false"
|
||||
colors="true"
|
||||
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>
|
59
maven-plugin-rpm/src/test/resources/files/composer.json
Normal file
|
@ -0,0 +1,59 @@
|
|||
{
|
||||
"name": "symfony/framework-standard-edition",
|
||||
"license": "MIT",
|
||||
"type": "project",
|
||||
"description": "The \"Symfony Standard Edition\" distribution",
|
||||
"autoload": {
|
||||
"psr-0": { "": "src/", "SymfonyStandard": "app/" }
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3",
|
||||
"symfony/symfony": "2.5.*",
|
||||
"doctrine/orm": "~2.2,>=2.2.3",
|
||||
"doctrine/doctrine-bundle": "~1.2",
|
||||
"twig/extensions": "~1.0",
|
||||
"symfony/assetic-bundle": "~2.3",
|
||||
"symfony/swiftmailer-bundle": "~2.3",
|
||||
"symfony/monolog-bundle": "~2.4",
|
||||
"sensio/distribution-bundle": "~3.0",
|
||||
"sensio/framework-extra-bundle": "~3.0",
|
||||
"incenteev/composer-parameter-handler": "~2.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"sensio/generator-bundle": "~2.3"
|
||||
},
|
||||
"scripts": {
|
||||
"post-root-package-install": [
|
||||
"SymfonyStandard\\Composer::hookRootPackageInstall"
|
||||
],
|
||||
"post-install-cmd": [
|
||||
"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile",
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::removeSymfonyStandardFiles"
|
||||
],
|
||||
"post-update-cmd": [
|
||||
"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile",
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::removeSymfonyStandardFiles"
|
||||
]
|
||||
},
|
||||
"config": {
|
||||
"bin-dir": "bin"
|
||||
},
|
||||
"extra": {
|
||||
"symfony-app-dir": "app",
|
||||
"symfony-web-dir": "web",
|
||||
"incenteev-parameters": {
|
||||
"file": "app/config/parameters.yml"
|
||||
},
|
||||
"branch-alias": {
|
||||
"dev-master": "2.5-dev"
|
||||
}
|
||||
}
|
||||
}
|
1568
maven-plugin-rpm/src/test/resources/files/composer.lock
generated
Normal file
7
maven-plugin-rpm/src/test/resources/files/src/.htaccess
Normal file
|
@ -0,0 +1,7 @@
|
|||
<IfModule mod_authz_core.c>
|
||||
Require all denied
|
||||
</IfModule>
|
||||
<IfModule !mod_authz_core.c>
|
||||
Order deny,allow
|
||||
Deny from all
|
||||
</IfModule>
|
|
@ -0,0 +1,9 @@
|
|||
<?php
|
||||
|
||||
namespace Acme\DemoBundle;
|
||||
|
||||
use Symfony\Component\HttpKernel\Bundle\Bundle;
|
||||
|
||||
class AcmeDemoBundle extends Bundle
|
||||
{
|
||||
}
|
|
@ -0,0 +1,48 @@
|
|||
<?php
|
||||
|
||||
namespace Acme\DemoBundle\Command;
|
||||
|
||||
use Symfony\Component\Console\Command\Command;
|
||||
use Symfony\Component\Console\Input\InputArgument;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
|
||||
/**
|
||||
* Hello World command for demo purposes.
|
||||
*
|
||||
* You could also extend from Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand
|
||||
* to get access to the container via $this->getContainer().
|
||||
*
|
||||
* @author Tobias Schultze <http://tobion.de>
|
||||
*/
|
||||
class HelloWorldCommand extends Command
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function configure()
|
||||
{
|
||||
$this
|
||||
->setName('acme:hello')
|
||||
->setDescription('Hello World example command')
|
||||
->addArgument('who', InputArgument::OPTIONAL, 'Who to greet.', 'World')
|
||||
->setHelp(<<<EOF
|
||||
The <info>%command.name%</info> command greets somebody or everybody:
|
||||
|
||||
<info>php %command.full_name%</info>
|
||||
|
||||
The optional argument specifies who to greet:
|
||||
|
||||
<info>php %command.full_name%</info> Fabien
|
||||
EOF
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function execute(InputInterface $input, OutputInterface $output)
|
||||
{
|
||||
$output->writeln(sprintf('Hello <comment>%s</comment>!', $input->getArgument('who')));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,56 @@
|
|||
<?php
|
||||
|
||||
namespace Acme\DemoBundle\Controller;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use Symfony\Component\HttpFoundation\RedirectResponse;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
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(Request $request)
|
||||
{
|
||||
$form = $this->createForm(new ContactType());
|
||||
$form->handleRequest($request);
|
||||
|
||||
if ($form->isValid()) {
|
||||
$mailer = $this->get('mailer');
|
||||
|
||||
// .. setup a message and send it
|
||||
// http://symfony.com/doc/current/cookbook/email.html
|
||||
|
||||
$request->getSession()->getFlashBag()->set('notice', 'Message sent!');
|
||||
|
||||
return new RedirectResponse($this->generateUrl('_demo'));
|
||||
}
|
||||
|
||||
return array('form' => $form->createView());
|
||||
}
|
||||
}
|
|
@ -0,0 +1,70 @@
|
|||
<?php
|
||||
|
||||
namespace Acme\DemoBundle\Controller;
|
||||
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\Security\Core\SecurityContext;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
|
||||
|
||||
/**
|
||||
* @Route("/demo/secured")
|
||||
*/
|
||||
class SecuredController extends Controller
|
||||
{
|
||||
/**
|
||||
* @Route("/login", name="_demo_login")
|
||||
* @Template()
|
||||
*/
|
||||
public function loginAction(Request $request)
|
||||
{
|
||||
if ($request->attributes->has(SecurityContext::AUTHENTICATION_ERROR)) {
|
||||
$error = $request->attributes->get(SecurityContext::AUTHENTICATION_ERROR);
|
||||
} else {
|
||||
$error = $request->getSession()->get(SecurityContext::AUTHENTICATION_ERROR);
|
||||
}
|
||||
|
||||
return array(
|
||||
'last_username' => $request->getSession()->get(SecurityContext::LAST_USERNAME),
|
||||
'error' => $error,
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/login_check", name="_demo_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")
|
||||
* @Security("is_granted('ROLE_ADMIN')")
|
||||
* @Template()
|
||||
*/
|
||||
public function helloadminAction($name)
|
||||
{
|
||||
return array('name' => $name);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
<?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');
|
||||
}
|
||||
}
|
|
@ -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';
|
||||
}
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
<?php
|
||||
|
||||
namespace Acme\DemoBundle\EventListener;
|
||||
|
||||
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());
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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';
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
_welcome:
|
||||
path: /
|
||||
defaults: { _controller: AcmeDemoBundle:Welcome:index }
|
||||
|
||||
_demo_secured:
|
||||
resource: "@AcmeDemoBundle/Controller/SecuredController.php"
|
||||
type: annotation
|
||||
|
||||
_demo:
|
||||
resource: "@AcmeDemoBundle/Controller/DemoController.php"
|
||||
type: annotation
|
||||
prefix: /demo
|
|
@ -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>
|
|
@ -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;
|
||||
}
|
After Width: | Height: | Size: 181 B |
After Width: | Height: | Size: 63 B |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 737 B |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 4 KiB |
After Width: | Height: | Size: 4.7 KiB |
|
@ -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 %}
|
|
@ -0,0 +1,9 @@
|
|||
{% extends "AcmeDemoBundle::layout.html.twig" %}
|
||||
|
||||
{% block title "Hello " ~ name %}
|
||||
|
||||
{% block content %}
|
||||
<h1>Hello {{ name }}!</h1>
|
||||
{% endblock %}
|
||||
|
||||
{% set code = code(_self) %}
|
|
@ -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 %}
|
|
@ -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) %}
|
|
@ -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) %}
|
|
@ -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 %}
|
|
@ -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("_demo_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) %}
|
|
@ -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 %}
|
|
@ -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 %}
|
|
@ -0,0 +1,45 @@
|
|||
<?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());
|
||||
}
|
||||
|
||||
public function testSecureSection()
|
||||
{
|
||||
$client = static::createClient();
|
||||
|
||||
// goes to the secure page
|
||||
$crawler = $client->request('GET', '/demo/secured/hello/World');
|
||||
|
||||
// redirects to the login page
|
||||
$crawler = $client->followRedirect();
|
||||
|
||||
// submits the login form
|
||||
$form = $crawler->selectButton('Login')->form(array('_username' => 'admin', '_password' => 'adminpass'));
|
||||
$client->submit($form);
|
||||
|
||||
// redirect to the original page (but now authenticated)
|
||||
$crawler = $client->followRedirect();
|
||||
|
||||
// check that the page is the right one
|
||||
$this->assertCount(1, $crawler->filter('h1.title:contains("Hello World!")'));
|
||||
|
||||
// click on the secure link
|
||||
$link = $crawler->selectLink('Hello resource secured')->link();
|
||||
$crawler = $client->click($link);
|
||||
|
||||
// check that the page is the right one
|
||||
$this->assertCount(1, $crawler->filter('h1.title:contains("secured for Admins only!")'));
|
||||
}
|
||||
}
|
|
@ -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(
|
||||
new \Twig_SimpleFunction('code', array($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"><?php </span>', ' ', $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';
|
||||
}
|
||||
}
|
56
maven-plugin-rpm/src/test/resources/files/web/.htaccess
Normal file
|
@ -0,0 +1,56 @@
|
|||
# Use the front controller as index file. It serves as a 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
|
||||
# start page (path "/") because otherwise Apache will apply the rewriting rules
|
||||
# to each configured DirectoryIndex file (e.g. index.php, index.html, index.pl).
|
||||
DirectoryIndex app.php
|
||||
|
||||
<IfModule mod_rewrite.c>
|
||||
RewriteEngine On
|
||||
|
||||
# Determine the RewriteBase automatically and set it as environment variable.
|
||||
# If you are using Apache aliases to do mass virtual hosting or installed the
|
||||
# project in a subdirectory, the base path will be prepended to allow proper
|
||||
# resolution of the app.php file and to redirect to the correct URI. It will
|
||||
# work in environments without path prefix as well, providing a safe, one-size
|
||||
# fits all solution. But as you do not need it in this case, you can comment
|
||||
# the following 2 lines to eliminate the overhead.
|
||||
RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
|
||||
RewriteRule ^(.*) - [E=BASE:%1]
|
||||
|
||||
# Sets the HTTP_AUTHORIZATION header removed by apache
|
||||
RewriteCond %{HTTP:Authorization} .
|
||||
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
|
||||
|
||||
# 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 start page 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(/(.*)|$) %{ENV:BASE}/$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]
|
||||
|
||||
# Rewrite all other queries to the front controller.
|
||||
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 start page 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>
|
29
maven-plugin-rpm/src/test/resources/files/web/app.php
Normal file
|
@ -0,0 +1,29 @@
|
|||
<?php
|
||||
|
||||
use Symfony\Component\ClassLoader\ApcClassLoader;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
||||
$loader = require_once __DIR__.'/../app/bootstrap.php.cache';
|
||||
|
||||
// Use APC for autoloading to improve performance.
|
||||
// Change 'sf2' to a unique prefix in order to prevent cache key conflicts
|
||||
// with other applications also using APC.
|
||||
/*
|
||||
$apcLoader = new ApcClassLoader('sf2', $loader);
|
||||
$loader->unregister();
|
||||
$apcLoader->register(true);
|
||||
*/
|
||||
|
||||
require_once __DIR__.'/../app/AppKernel.php';
|
||||
//require_once __DIR__.'/../app/AppCache.php';
|
||||
|
||||
$kernel = new AppKernel('prod', false);
|
||||
$kernel->loadClassCache();
|
||||
//$kernel = new AppCache($kernel);
|
||||
|
||||
// When using the HttpCache, you need to call the method in your front controller instead of relying on the configuration parameter
|
||||
//Request::enableHttpMethodParameterOverride();
|
||||
$request = Request::createFromGlobals();
|
||||
$response = $kernel->handle($request);
|
||||
$response->send();
|
||||
$kernel->terminate($request, $response);
|
30
maven-plugin-rpm/src/test/resources/files/web/app_dev.php
Normal file
|
@ -0,0 +1,30 @@
|
|||
<?php
|
||||
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\Debug\Debug;
|
||||
|
||||
// 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')) || php_sapi_name() === 'cli-server')
|
||||
) {
|
||||
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';
|
||||
Debug::enable();
|
||||
|
||||
require_once __DIR__.'/../app/AppKernel.php';
|
||||
|
||||
$kernel = new AppKernel('dev', true);
|
||||
$kernel->loadClassCache();
|
||||
$request = Request::createFromGlobals();
|
||||
$response = $kernel->handle($request);
|
||||
$response->send();
|
||||
$kernel->terminate($request, $response);
|
After Width: | Height: | Size: 10 KiB |
124
maven-plugin-rpm/src/test/resources/files/web/config.php
Normal file
|
@ -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>
|
BIN
maven-plugin-rpm/src/test/resources/files/web/favicon.ico
Normal file
After Width: | Height: | Size: 6.4 KiB |
4
maven-plugin-rpm/src/test/resources/files/web/robots.txt
Normal file
|
@ -0,0 +1,4 @@
|
|||
# www.robotstxt.org/
|
||||
# www.google.com/support/webmasters/bin/answer.py?hl=en&answer=156449
|
||||
|
||||
User-agent: *
|