diff --git a/.docker/apache.dockerfile b/.docker/apache.dockerfile index 75b7c73..ee847b3 100644 --- a/.docker/apache.dockerfile +++ b/.docker/apache.dockerfile @@ -1,4 +1,4 @@ -FROM php:8.2-apache +FROM php:8.3-apache RUN apt-get update \ && apt-get install -y libicu-dev diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1e46c0d..6919d54 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -5,7 +5,7 @@ jobs: setup: name: Check PHP frameworks runs-on: ubuntu-22.04 - + steps: - uses: actions/checkout@v3 @@ -16,15 +16,15 @@ jobs: - name: Setup PHP uses: shivammathur/setup-php@v2 with: - php-version: 8.2 + php-version: 8.3 extensions: dom, curl, libxml, mbstring, zip, pcntl, ctype, iconv, intl coverage: none - name: Install Apache mod_php run: | LC_ALL=C.UTF-8 sudo apt-add-repository http://ppa.launchpad.net/ondrej/php/ubuntu - sudo apt install libapache2-mod-php8.2 - sudo a2enmod php8.2 rewrite + sudo apt install libapache2-mod-php8.3 + sudo a2enmod php8.3 rewrite shell: bash - name: Setup frameworks diff --git a/README.md b/README.md index f6abd8b..b215ca1 100755 --- a/README.md +++ b/README.md @@ -69,13 +69,16 @@ These are my benchmarks, not yours. **I encourage you to run on your -production |lumen-10.0 | 325.27| 3.9| 3.61| 8.6| |symfony-5.4 | 309.74| 3.7| 3.77| 9.0| |codeigniter-4.4 | 302.21| 3.6| 3.62| 8.6| -|symfony-6.4 | 278.58| 3.3| 4.11| 9.8| +|symfony-7.0 | 286.46| 3.4| 4.07| 9.7| +|symfony-6.4 | 280.83| 3.3| 4.11| 9.8| |cakephp-4.5 | 246.72| 2.9| 4.63| 11.0| +|cakephp-5.0 | 243.96| 2.9| 4.74| 11.3| |laravel-10.2 | 84.19| 1.0| 13.06| 31.0| #### OPCache On Check out the video for more information. + [![Results with OPCache On/Off & How to add your framework](http://img.youtube.com/vi/Dk8YHQZ6jfY/0.jpg)](http://www.youtube.com/watch?v=Dk8YHQZ6jfY) @@ -182,9 +185,7 @@ $ bash benchmark.sh -t laravel-10.2/ slim-4.12/ ... ## Add Your Framework -Check out the [Benchmarking Policy](#benchmarking-policy), to get more information watch the video - -[OPCache On/Off](#opcache-on). +Check out the [Benchmarking Policy](#benchmarking-policy), to get more information watch the video [OPCache On/Off](#opcache-on). ## Benchmarking Policy diff --git a/cakephp-4.5/_benchmark/setup.sh b/cakephp-4.5/_benchmark/setup.sh index 52ac9e1..c723eb2 100755 --- a/cakephp-4.5/_benchmark/setup.sh +++ b/cakephp-4.5/_benchmark/setup.sh @@ -1,7 +1,7 @@ #!/bin/sh # create project rm -rf _benchmark/temp -composer create-project --prefer-dist cakephp/app:4.5.* ./_benchmark/temp +composer create-project --prefer-dist cakephp/app:4.5.* ./_benchmark/temp --ansi yes|mv ./_benchmark/temp/{.,}* ./ # have the route & controller @@ -9,5 +9,5 @@ yes|cp -r _benchmark/cakephp/* ./ # some enhancements composer dump-autoload -o -composer install --no-interaction --no-dev -o +composer install --no-interaction --no-dev -o --ansi rm ./webroot/.htaccess \ No newline at end of file diff --git a/cakephp-5.0/_benchmark/cakephp/config/app_local.php b/cakephp-5.0/_benchmark/cakephp/config/app_local.php new file mode 100644 index 0000000..d4b5298 --- /dev/null +++ b/cakephp-5.0/_benchmark/cakephp/config/app_local.php @@ -0,0 +1,95 @@ + false, + + /* + * Security and encryption configuration + * + * - salt - A random string used in security hashing methods. + * The salt value is also used as the encryption key. + * You should treat it as extremely sensitive data. + */ + 'Security' => [ + 'salt' => env('SECURITY_SALT', '__SALT__'), + ], + + /* + * Connection information used by the ORM to connect + * to your application's datastores. + * + * See app.php for more configuration options. + */ + 'Datasources' => [ + 'default' => [ + 'host' => 'localhost', + /* + * CakePHP will use the default DB port based on the driver selected + * MySQL on MAMP uses port 8889, MAMP users will want to uncomment + * the following line and set the port accordingly + */ + //'port' => 'non_standard_port_number', + + 'username' => 'my_app', + 'password' => 'secret', + + 'database' => 'my_app', + /* + * If not using the default 'public' schema with the PostgreSQL driver + * set it here. + */ + //'schema' => 'myapp', + + /* + * You can use a DSN string to set the entire configuration + */ + 'url' => env('DATABASE_URL', null), + ], + + /* + * The test connection is used during the test suite. + */ + 'test' => [ + 'host' => 'localhost', + //'port' => 'non_standard_port_number', + 'username' => 'my_app', + 'password' => 'secret', + 'database' => 'test_myapp', + //'schema' => 'myapp', + 'url' => env('DATABASE_TEST_URL', 'sqlite://127.0.0.1/tests.sqlite'), + ], + ], + + /* + * Email configuration. + * + * Host and credential configuration in case you are using SmtpTransport + * + * See app.php for more configuration options. + */ + 'EmailTransport' => [ + 'default' => [ + 'host' => 'localhost', + 'port' => 25, + 'username' => null, + 'password' => null, + 'client' => null, + 'url' => env('EMAIL_TRANSPORT_DEFAULT_URL', null), + ], + ], +]; diff --git a/cakephp-5.0/_benchmark/cakephp/config/routes.php b/cakephp-5.0/_benchmark/cakephp/config/routes.php new file mode 100644 index 0000000..4d5b54c --- /dev/null +++ b/cakephp-5.0/_benchmark/cakephp/config/routes.php @@ -0,0 +1,94 @@ +setRouteClass(DashedRoute::class); + + /* *** PHP-Frameworks-Bench *** */ + $routes->connect('/hello/index', ['controller' => 'HelloWorld', 'action' => 'display', 'home']); + + $routes->scope('/', function (RouteBuilder $builder) { + /* + * Here, we are connecting '/' (base path) to a controller called 'Pages', + * its action called 'display', and we pass a param to select the view file + * to use (in this case, templates/Pages/home.php)... + */ + $builder->connect('/', ['controller' => 'Pages', 'action' => 'display', 'home']); + + /* + * ...and connect the rest of 'Pages' controller's URLs. + */ + $builder->connect('/pages/*', 'Pages::display'); + + /* + * Connect catchall routes for all controllers. + * + * The `fallbacks` method is a shortcut for + * + * ``` + * $builder->connect('/:controller', ['action' => 'index']); + * $builder->connect('/:controller/:action/*', []); + * ``` + * + * You can remove these routes once you've connected the + * routes you want in your application. + */ + $builder->fallbacks(); + }); + + /* + * If you need a different set of middleware or none at all, + * open new scope and define routes there. + * + * ``` + * $routes->scope('/api', function (RouteBuilder $builder) { + * // No $builder->applyMiddleware() here. + * + * // Parse specified extensions from URLs + * // $builder->setExtensions(['json', 'xml']); + * + * // Connect API actions here. + * }); + * ``` + */ +}; diff --git a/cakephp-5.0/_benchmark/cakephp/src/Controller/HelloWorldController.php b/cakephp-5.0/_benchmark/cakephp/src/Controller/HelloWorldController.php new file mode 100644 index 0000000..5ee8564 --- /dev/null +++ b/cakephp-5.0/_benchmark/cakephp/src/Controller/HelloWorldController.php @@ -0,0 +1,17 @@ +response->withStringBody('Hello World!'); + } +} diff --git a/cakephp-5.0/_benchmark/cakephp/webroot/index.php b/cakephp-5.0/_benchmark/cakephp/webroot/index.php new file mode 100644 index 0000000..0f81798 --- /dev/null +++ b/cakephp-5.0/_benchmark/cakephp/webroot/index.php @@ -0,0 +1,40 @@ +emit($server->run()); + +/* *** PHP-Frameworks-Bench *** */ +require $_SERVER['DOCUMENT_ROOT'].'/PHP-Frameworks-Bench/libs/output_data.php'; \ No newline at end of file diff --git a/cakephp-5.0/_benchmark/clean.sh b/cakephp-5.0/_benchmark/clean.sh new file mode 100644 index 0000000..36d8cb0 --- /dev/null +++ b/cakephp-5.0/_benchmark/clean.sh @@ -0,0 +1,4 @@ +#!/bin/sh +rm -rf !("_benchmark") +find -path './.*' -delete +rm -rf _benchmark/temp \ No newline at end of file diff --git a/cakephp-5.0/_benchmark/clear-cache.sh b/cakephp-5.0/_benchmark/clear-cache.sh new file mode 100755 index 0000000..623a6b9 --- /dev/null +++ b/cakephp-5.0/_benchmark/clear-cache.sh @@ -0,0 +1,4 @@ +#!/bin/sh +# clear cache +bin/cake cache clear_all +echo -e "done" \ No newline at end of file diff --git a/cakephp-5.0/_benchmark/hello_world.sh b/cakephp-5.0/_benchmark/hello_world.sh new file mode 100755 index 0000000..1e321c9 --- /dev/null +++ b/cakephp-5.0/_benchmark/hello_world.sh @@ -0,0 +1,2 @@ +#!/bin/sh +url="$base/$fw/webroot/index.php/hello/index" \ No newline at end of file diff --git a/cakephp-5.0/_benchmark/setup.sh b/cakephp-5.0/_benchmark/setup.sh new file mode 100755 index 0000000..f85a2a5 --- /dev/null +++ b/cakephp-5.0/_benchmark/setup.sh @@ -0,0 +1,13 @@ +#!/bin/sh +# create project +rm -rf _benchmark/temp +composer create-project --prefer-dist cakephp/app:5.0.* ./_benchmark/temp --ansi +yes|mv ./_benchmark/temp/{.,}* ./ + +# have the route & controller +yes|cp -r _benchmark/cakephp/* ./ + +# some enhancements +composer dump-autoload -o +composer install --no-interaction --no-dev -o --ansi +rm ./webroot/.htaccess \ No newline at end of file diff --git a/cakephp-5.0/_benchmark/update.sh b/cakephp-5.0/_benchmark/update.sh new file mode 100755 index 0000000..1fdb0b3 --- /dev/null +++ b/cakephp-5.0/_benchmark/update.sh @@ -0,0 +1,10 @@ +#!/bin/sh +composer update + +# have the route & controller +yes|cp -r _benchmark/cakephp/* ./ + +# some enhancements +composer dump-autoload -o +composer install --no-interaction --no-dev -o +rm ./webroot/.htaccess \ No newline at end of file diff --git a/codeigniter-4.4/_benchmark/setup.sh b/codeigniter-4.4/_benchmark/setup.sh index 2f20109..2e941e3 100755 --- a/codeigniter-4.4/_benchmark/setup.sh +++ b/codeigniter-4.4/_benchmark/setup.sh @@ -1,7 +1,7 @@ #!/bin/sh # create project rm -rf _benchmark/temp -composer create-project codeigniter4/appstarter:^4.4 --no-dev ./_benchmark/temp +composer create-project codeigniter4/appstarter:^4.4 --ansi --no-dev ./_benchmark/temp mv ./_benchmark/temp/{.,}* ./ # have the route & controller diff --git a/config b/config index 5940f8b..5e56e37 100644 --- a/config +++ b/config @@ -17,6 +17,7 @@ connections=500 # Sorted alphabetically frameworks_list=" cakephp-4.5 +cakephp-5.0 codeigniter-4.4 fastroute-1.3 fatfree-3.8 @@ -31,6 +32,7 @@ silex-2.3 slim-4.12 symfony-5.4 symfony-6.4 +symfony-7.0 ubiquity-2.4.x.dev yii-2.0-basic " diff --git a/fastroute-1.3/_benchmark/setup.sh b/fastroute-1.3/_benchmark/setup.sh index 1d7495c..993fa08 100644 --- a/fastroute-1.3/_benchmark/setup.sh +++ b/fastroute-1.3/_benchmark/setup.sh @@ -1,2 +1,2 @@ #!/bin/sh -composer install --no-dev -o \ No newline at end of file +composer install --no-dev -o --ansi \ No newline at end of file diff --git a/fatfree-3.8/_benchmark/setup.sh b/fatfree-3.8/_benchmark/setup.sh index 1d7495c..993fa08 100644 --- a/fatfree-3.8/_benchmark/setup.sh +++ b/fatfree-3.8/_benchmark/setup.sh @@ -1,2 +1,2 @@ #!/bin/sh -composer install --no-dev -o \ No newline at end of file +composer install --no-dev -o --ansi \ No newline at end of file diff --git a/fuelphp-1.9/_benchmark/setup.sh b/fuelphp-1.9/_benchmark/setup.sh index b14456c..9d79c14 100755 --- a/fuelphp-1.9/_benchmark/setup.sh +++ b/fuelphp-1.9/_benchmark/setup.sh @@ -1,7 +1,7 @@ #!/bin/sh # create project rm -rf _benchmark/temp -composer create-project fuel/fuel:^1.9.0 --prefer-dist ./_benchmark/temp +composer create-project fuel/fuel:^1.9.0 --prefer-dist ./_benchmark/temp --ansi mv ./_benchmark/temp/{.,}* ./ # have the route & controller @@ -9,5 +9,5 @@ yes|cp -r _benchmark/fuel/* ./ # some enhancements composer config allow-plugins.composer/installers true -composer install --no-dev -o +composer install --no-dev -o --ansi rm ./public/.htaccess \ No newline at end of file diff --git a/kumbia-1.1/_benchmark/setup.sh b/kumbia-1.1/_benchmark/setup.sh index 667e2e0..0b2d99f 100755 --- a/kumbia-1.1/_benchmark/setup.sh +++ b/kumbia-1.1/_benchmark/setup.sh @@ -1,13 +1,13 @@ #!/bin/sh # create project rm -rf _benchmark/temp -composer create-project --prefer-dist kumbia/framework:1.1.* ./_benchmark/temp +composer create-project --prefer-dist kumbia/framework:1.1.* ./_benchmark/temp --ansi mv ./_benchmark/temp/{.,}* ./ # have the route & controller yes|cp -r _benchmark/kumbia/* ./ # some enhancements -composer install --no-dev --optimize-autoloader +composer install --no-dev --optimize-autoloader --ansi find . -name \*.htaccess -type f -delete \ No newline at end of file diff --git a/laravel-10.2/_benchmark/setup.sh b/laravel-10.2/_benchmark/setup.sh index 8295247..c84b6a9 100755 --- a/laravel-10.2/_benchmark/setup.sh +++ b/laravel-10.2/_benchmark/setup.sh @@ -1,14 +1,14 @@ #!/bin/sh # create project rm -rf _benchmark/temp -composer create-project --prefer-dist laravel/laravel:10.2.* ./_benchmark/temp +composer create-project --prefer-dist laravel/laravel:10.2.* ./_benchmark/temp --ansi mv ./_benchmark/temp/{.,}* ./ # have the route & controller yes|cp -rf _benchmark/laravel/. ./ # some enhancements -composer install --optimize-autoloader --no-dev +composer install --optimize-autoloader --no-dev --ansi chmod -R o+w storage rm ./public/.htaccess \ No newline at end of file diff --git a/leaf-3.5/_benchmark/setup.sh b/leaf-3.5/_benchmark/setup.sh index 1d7495c..993fa08 100755 --- a/leaf-3.5/_benchmark/setup.sh +++ b/leaf-3.5/_benchmark/setup.sh @@ -1,2 +1,2 @@ #!/bin/sh -composer install --no-dev -o \ No newline at end of file +composer install --no-dev -o --ansi \ No newline at end of file diff --git a/lumen-10.0/_benchmark/setup.sh b/lumen-10.0/_benchmark/setup.sh index 8d8e0d1..605fac9 100755 --- a/lumen-10.0/_benchmark/setup.sh +++ b/lumen-10.0/_benchmark/setup.sh @@ -1,13 +1,13 @@ #!/bin/sh # create project rm -rf _benchmark/temp -composer create-project --prefer-dist laravel/lumen:10.0.* ./_benchmark/temp +composer create-project --prefer-dist laravel/lumen:10.0.* ./_benchmark/temp --ansi mv ./_benchmark/temp/{.,}* ./ # have the route & controller yes|cp -rf _benchmark/lumen/. ./ # some enhancements -composer install --no-dev -o +composer install --no-dev -o --ansi chmod -R o+w storage rm ./public/.htaccess \ No newline at end of file diff --git a/phroute-2.2/_benchmark/setup.sh b/phroute-2.2/_benchmark/setup.sh index 1d7495c..993fa08 100755 --- a/phroute-2.2/_benchmark/setup.sh +++ b/phroute-2.2/_benchmark/setup.sh @@ -1,2 +1,2 @@ #!/bin/sh -composer install --no-dev -o \ No newline at end of file +composer install --no-dev -o --ansi \ No newline at end of file diff --git a/screenshots/php-frameworks-bench-exectime.png b/screenshots/php-frameworks-bench-exectime.png index 3bf2ac7..50ecb0c 100644 Binary files a/screenshots/php-frameworks-bench-exectime.png and b/screenshots/php-frameworks-bench-exectime.png differ diff --git a/screenshots/php-frameworks-bench-includedfiles.png b/screenshots/php-frameworks-bench-includedfiles.png index fc72082..54ff88d 100644 Binary files a/screenshots/php-frameworks-bench-includedfiles.png and b/screenshots/php-frameworks-bench-includedfiles.png differ diff --git a/screenshots/php-frameworks-bench-memory.png b/screenshots/php-frameworks-bench-memory.png index 08f963a..f5f722b 100644 Binary files a/screenshots/php-frameworks-bench-memory.png and b/screenshots/php-frameworks-bench-memory.png differ diff --git a/screenshots/php-frameworks-bench-throughput.png b/screenshots/php-frameworks-bench-throughput.png index 6655d66..48c56f2 100644 Binary files a/screenshots/php-frameworks-bench-throughput.png and b/screenshots/php-frameworks-bench-throughput.png differ diff --git a/setup.sh b/setup.sh index 44c3c81..b1e3a1a 100644 --- a/setup.sh +++ b/setup.sh @@ -1,4 +1,5 @@ #!/bin/sh +export TERM=xterm-color if [ ! `which composer` ]; then echo "composer not found." @@ -27,6 +28,7 @@ fi for fw in $param_targets do if [ -d "$fw" ]; then + echo -e "\n\n" echo "/------- $fw: setting up -------/" cd "$fw" . "_benchmark/setup.sh" diff --git a/silex-2.3/_benchmark/setup.sh b/silex-2.3/_benchmark/setup.sh index 1d7495c..993fa08 100644 --- a/silex-2.3/_benchmark/setup.sh +++ b/silex-2.3/_benchmark/setup.sh @@ -1,2 +1,2 @@ #!/bin/sh -composer install --no-dev -o \ No newline at end of file +composer install --no-dev -o --ansi \ No newline at end of file diff --git a/slim-4.12/_benchmark/setup.sh b/slim-4.12/_benchmark/setup.sh index 1d7495c..993fa08 100644 --- a/slim-4.12/_benchmark/setup.sh +++ b/slim-4.12/_benchmark/setup.sh @@ -1,2 +1,2 @@ #!/bin/sh -composer install --no-dev -o \ No newline at end of file +composer install --no-dev -o --ansi \ No newline at end of file diff --git a/symfony-5.4/_benchmark/setup.sh b/symfony-5.4/_benchmark/setup.sh index 8103e14..8908e53 100755 --- a/symfony-5.4/_benchmark/setup.sh +++ b/symfony-5.4/_benchmark/setup.sh @@ -1,14 +1,14 @@ #!/bin/sh # create project rm -rf _benchmark/temp -composer create-project symfony/skeleton:5.4.* ./_benchmark/temp +composer create-project symfony/skeleton:5.4.* ./_benchmark/temp --ansi mv ./_benchmark/temp/{.,}* ./ # have the route & controller yes|cp -r _benchmark/symfony/* ./ # some enhancements -composer dump-env prod +composer dump-env prod --ansi APP_ENV=prod APP_DEBUG=0 bin/console cache:clear -composer install --no-dev --optimize-autoloader +composer install --no-dev --optimize-autoloader --ansi chmod -R o+w var \ No newline at end of file diff --git a/symfony-6.4/_benchmark/setup.sh b/symfony-6.4/_benchmark/setup.sh index 5fad444..b81265a 100755 --- a/symfony-6.4/_benchmark/setup.sh +++ b/symfony-6.4/_benchmark/setup.sh @@ -1,14 +1,14 @@ #!/bin/sh # create project rm -rf _benchmark/temp -composer create-project symfony/skeleton:6.4.* ./_benchmark/temp +composer create-project symfony/skeleton:6.4.* ./_benchmark/temp --ansi mv ./_benchmark/temp/{.,}* ./ # have the route & controller yes|cp -r _benchmark/symfony/* ./ # some enhancement -composer dump-env prod +composer dump-env prod --ansi APP_ENV=prod APP_DEBUG=0 bin/console cache:clear -composer install --no-dev --optimize-autoloader +composer install --no-dev --optimize-autoloader --ansi chmod -R o+w var \ No newline at end of file diff --git a/symfony-7.0/_benchmark/clean.sh b/symfony-7.0/_benchmark/clean.sh new file mode 100644 index 0000000..36d8cb0 --- /dev/null +++ b/symfony-7.0/_benchmark/clean.sh @@ -0,0 +1,4 @@ +#!/bin/sh +rm -rf !("_benchmark") +find -path './.*' -delete +rm -rf _benchmark/temp \ No newline at end of file diff --git a/symfony-7.0/_benchmark/clear-cache.sh b/symfony-7.0/_benchmark/clear-cache.sh new file mode 100755 index 0000000..fbdb14f --- /dev/null +++ b/symfony-7.0/_benchmark/clear-cache.sh @@ -0,0 +1,4 @@ +#!/bin/sh +# clear cache +bin/console cache:clear -q +echo -e "done" \ No newline at end of file diff --git a/symfony-7.0/_benchmark/hello_world.sh b/symfony-7.0/_benchmark/hello_world.sh new file mode 100644 index 0000000..2d69368 --- /dev/null +++ b/symfony-7.0/_benchmark/hello_world.sh @@ -0,0 +1,2 @@ +#!/bin/sh +url="$base/$fw/public/index.php/hello/index" \ No newline at end of file diff --git a/symfony-7.0/_benchmark/setup.sh b/symfony-7.0/_benchmark/setup.sh new file mode 100755 index 0000000..1a68a24 --- /dev/null +++ b/symfony-7.0/_benchmark/setup.sh @@ -0,0 +1,14 @@ +#!/bin/sh +# create project +rm -rf _benchmark/temp +composer create-project symfony/skeleton:7.0.* ./_benchmark/temp --ansi +mv ./_benchmark/temp/{.,}* ./ + +# have the route & controller +yes|cp -r _benchmark/symfony/* ./ + +# some enhancement +composer dump-env prod --ansi +APP_ENV=prod APP_DEBUG=0 bin/console cache:clear +composer install --no-dev --optimize-autoloader --ansi +chmod -R o+w var \ No newline at end of file diff --git a/symfony-7.0/_benchmark/symfony/config/routes.yaml b/symfony-7.0/_benchmark/symfony/config/routes.yaml new file mode 100644 index 0000000..82b6673 --- /dev/null +++ b/symfony-7.0/_benchmark/symfony/config/routes.yaml @@ -0,0 +1,6 @@ +#index: +# path: / +# controller: App\Controller\DefaultController::index +hello_world: + path: /hello/index + controller: App\Controller\HelloWorldController::index \ No newline at end of file diff --git a/symfony-7.0/_benchmark/symfony/public/index.php b/symfony-7.0/_benchmark/symfony/public/index.php new file mode 100644 index 0000000..a015893 --- /dev/null +++ b/symfony-7.0/_benchmark/symfony/public/index.php @@ -0,0 +1,19 @@ +handle($request); +$response->send(); +$kernel->terminate($request, $response); + +require $_SERVER['DOCUMENT_ROOT'].'/PHP-Frameworks-Bench/libs/output_data.php'; \ No newline at end of file diff --git a/symfony-7.0/_benchmark/symfony/src/Controller/HelloWorldController.php b/symfony-7.0/_benchmark/symfony/src/Controller/HelloWorldController.php new file mode 100644 index 0000000..a2f531c --- /dev/null +++ b/symfony-7.0/_benchmark/symfony/src/Controller/HelloWorldController.php @@ -0,0 +1,15 @@ +