diff --git a/boilerplate/README.md b/boilerplate/README.md index 4ed5bb27c0ac31ea065998a4d2784dcdf6e75491..b8b95f12ea748be62b560b4b6ebde2ae64fa19df 100644 --- a/boilerplate/README.md +++ b/boilerplate/README.md @@ -29,7 +29,7 @@ $ docker-compose -f docker-compose.yml start ### machine(s) php * un ou plusieurs services php/apache ou php-cli -* basés sur les images `canals/php`, les tags `:8.0`,`:8.0-cli`, `:7.4`,`:latest`,`:7.4-cli`, `:7.3`,`:7.3-cli`, `:7.2` et `7.2-cli`, `:7.1` +* basés sur les images `canals/php`, les tags `:8.1`,`:8.1-cli`, `:latest`, `:8.0`,`:8.0-cli`, `:7.4`,`:7.4-cli`, `:7.3`,`:7.3-cli`, `:7.2` et `7.2-cli`, `:7.1` et `7.1-cli`,`:5.6` sont utilisables (pour plus de détails sur ces images, voir la [doc](https://hub.docker.com/r/canals/php/) ) * conseils : utiliser les vhost et les déclarer dans votre `/etc/hosts` @@ -54,26 +54,28 @@ services: - ./src:/var/www/src - ./html:/var/www/html - data:/var/www/data - links : - - mysql:db - - mongodb:mongo - - mailcatcher:mail - - postgres:pg + networks: + - local_network + depends_on : + - mysql + - mongodb ``` #### exemple : service php-cli avec lancement du serveur embarqué : ``` services: php: - image: canals/php:7.4-cli + image: canals/php:8.1-cli ports: - "8800:8000" volumes: - ./:/var/php working_dir: /var/php command: php -S 0.0.0.0:8000 index.php - links : - - mysql:db - - mongo:mongo + networks: + - local_network + depends_on : + - mysql + - mongodb ``` ### mysql + adminer @@ -86,28 +88,34 @@ services: si les fichiers d'import/export sont trop volumineux pour être traités par adminer #### important : -Ne pas oublier de lier le service mysql dans tous les services qui doivent accéder à la base -mysql, par exemple dans les services php. +Le service mysql est accessible dans tous les services connectés au même réseau avec +un hostname ayant pour valeur le nom du service. +On peut ajouter un ou plusieurs hostname alternatifs avec la directive sous directive `aliases` de la directive `networks` + #### exemple ``` mysql: image: mariadb:latest -# image: mysql:5.6 environment: - MYSQL_ROOT_PASSWORD=root - MYSQL_USER=user - MYSQL_PASSWORD=user ports: - "3603:3306" + networks: + aliases: + - db adminer: image: adminer ports: - "8080:8080" - links: - - mysql:db + depends_on: + - mysql + # Dans ce conteneur, le serveur mysql est accessible avec le hostname mysql et + # le hostname db ``` ### mongodb + mongo-express @@ -123,13 +131,17 @@ mysql, par exemple dans les services php. image: mongo:latest ports: - 27017:27017 + networks: + local_network: + aliases: + - mongo mongo-express: image: mongo-express:latest ports: - "8081:8081" - links: - - mongodb:mongo + depends_on: + - mongodb ``` ### mailcatcher @@ -149,6 +161,10 @@ mailcatcher: ports: - "1080:1080" - "1025:1025 + networks: + local_network: + aliases: + - mail.server ``` #### usage @@ -157,15 +173,16 @@ mailcatcher: web: image: canals/php ... - links : - - mysql:db - - mailcatcher:mail + networks: + - localnetwork + depends_on: + - mailcatcher ``` - il faut utiliser le serveur de mail nommé `mail` sur le port `1025`. + il faut utiliser le serveur de mail nommé `mail.server` sur le port `1025`. Par exemple, avec SwiftMailer : ``` - $mailer = new Swift_Mailer( new Swift_SmtpTransport('mail', 1025) ); + $mailer = new Swift_Mailer( new Swift_SmtpTransport('mail.server', 1025) ); ``` diff --git a/boilerplate/demo/docker-compose.yml b/boilerplate/demo/docker-compose.yml index 3342e492b30f1f96183935ea439483e074955124..c3a0cc8360bf353b4add9be2a97a40157be1c962 100644 --- a/boilerplate/demo/docker-compose.yml +++ b/boilerplate/demo/docker-compose.yml @@ -6,7 +6,7 @@ networks: services: web: - image: canals/php:8.0 + image: canals/php:latest environment: - VHOST_HOSTNAME=web.test.local - VHOST_DOCROOT=/var/www/web @@ -19,16 +19,19 @@ services: - ./html:/var/www/html - data:/var/www/data working_dir: /var/www/src - links : - - mysql:db +# links : +# - mysql:db # - postgres:pg # - mongo:mongo # - mail:mail networks: - local_network + depends_on: + - mysql + - mongo php: - image: canals/php:8.0-cli + image: canals/php:8.1-cli expose: - "8000" ports: @@ -39,9 +42,12 @@ services: networks: - local_network command: php -S 0.0.0.0:8000 web/index-cli.php - links : - - mysql:db - - mongo:mongo + depends_on: + - mysql + - mongo +# links : +# - mysql:db +# - mongo:mongo # - mail:mail # - postgres:pg @@ -50,7 +56,6 @@ services: # mysql + adminer / can be replaced by mariadb ############################# mysql: - #image: mysql:5.6 image: mariadb:latest environment: - MYSQL_ROOT_PASSWORD=root @@ -59,14 +64,14 @@ services: ports: - "3603:3306" networks: - - local_network + local_network: + aliases: + - db adminer: image: adminer ports: - "8080:8080" - links: - - mysql:db networks: - local_network @@ -96,32 +101,33 @@ services: ################################################ # mongodb & mongo-express ############################################### - mongo: + mongodb: image: mongo:latest ports: - 27017:27017 networks: - - local_network + local_network: + aliases: + - mongo mongo-express: image: mongo-express:latest ports: - "8081:8081" - links: - - mongo:mongo +# links: +# - mongo:mongo networks: - local_network ############################################## # mailcatcher : so useful ! ############################################## -# mail: -# image: schickling/mailcatcher -# container_name: mail_test -# ports: -# - "1080:1080" -# networks: -# - local_network + mail: + image: schickling/mailcatcher + ports: + - "1080:1080" + networks: + - local_network ######################################## # shared storage : useful for, e.g. sharing diff --git a/boilerplate/demo/src/composer.lock b/boilerplate/demo/src/composer.lock index e94aa773afcc429f057771548c59401dd0903b93..2fe5e8a53439a649191f76d7cc6319cbb5debc2c 100644 --- a/boilerplate/demo/src/composer.lock +++ b/boilerplate/demo/src/composer.lock @@ -6,99 +6,30 @@ ], "content-hash": "36a2b35c58a5b49561f22d67c89c7c85", "packages": [ - { - "name": "composer/package-versions-deprecated", - "version": "1.11.99.1", - "source": { - "type": "git", - "url": "https://github.com/composer/package-versions-deprecated.git", - "reference": "7413f0b55a051e89485c5cb9f765fe24bb02a7b6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/7413f0b55a051e89485c5cb9f765fe24bb02a7b6", - "reference": "7413f0b55a051e89485c5cb9f765fe24bb02a7b6", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.1.0 || ^2.0", - "php": "^7 || ^8" - }, - "replace": { - "ocramius/package-versions": "1.11.99" - }, - "require-dev": { - "composer/composer": "^1.9.3 || ^2.0@dev", - "ext-zip": "^1.13", - "phpunit/phpunit": "^6.5 || ^7" - }, - "type": "composer-plugin", - "extra": { - "class": "PackageVersions\\Installer", - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "PackageVersions\\": "src/PackageVersions" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" - }, - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be" - } - ], - "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", - "support": { - "issues": "https://github.com/composer/package-versions-deprecated/issues", - "source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.1" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2020-11-11T10:22:58+00:00" - }, { "name": "jean85/pretty-package-versions", - "version": "1.5.1", + "version": "2.0.5", "source": { "type": "git", "url": "https://github.com/Jean85/pretty-package-versions.git", - "reference": "a917488320c20057da87f67d0d40543dd9427f7a" + "reference": "ae547e455a3d8babd07b96966b17d7fd21d9c6af" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/a917488320c20057da87f67d0d40543dd9427f7a", - "reference": "a917488320c20057da87f67d0d40543dd9427f7a", + "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/ae547e455a3d8babd07b96966b17d7fd21d9c6af", + "reference": "ae547e455a3d8babd07b96966b17d7fd21d9c6af", "shasum": "" }, "require": { - "composer/package-versions-deprecated": "^1.8.0", - "php": "^7.0|^8.0" + "composer-runtime-api": "^2.0.0", + "php": "^7.1|^8.0" }, "require-dev": { - "phpunit/phpunit": "^6.0|^8.5|^9.2" + "friendsofphp/php-cs-fixer": "^2.17", + "jean85/composer-provided-replaced-stub-package": "^1.0", + "phpstan/phpstan": "^0.12.66", + "phpunit/phpunit": "^7.5|^8.5|^9.4", + "vimeo/psalm": "^4.3" }, "type": "library", "extra": { @@ -121,7 +52,7 @@ "email": "alessandro.lai85@gmail.com" } ], - "description": "A wrapper for ocramius/package-versions to get pretty versions strings", + "description": "A library to get pretty versions strings of installed dependencies", "keywords": [ "composer", "package", @@ -130,49 +61,50 @@ ], "support": { "issues": "https://github.com/Jean85/pretty-package-versions/issues", - "source": "https://github.com/Jean85/pretty-package-versions/tree/1.5.1" + "source": "https://github.com/Jean85/pretty-package-versions/tree/2.0.5" }, - "time": "2020-09-14T08:43:34+00:00" + "time": "2021-10-08T21:21:46+00:00" }, { "name": "mongodb/mongodb", - "version": "1.8.0", + "version": "1.12.0", "source": { "type": "git", "url": "https://github.com/mongodb/mongo-php-library.git", - "reference": "953dbc19443aa9314c44b7217a16873347e6840d" + "reference": "e4a7594ac4b31635fa77455c4038a7013024ba28" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mongodb/mongo-php-library/zipball/953dbc19443aa9314c44b7217a16873347e6840d", - "reference": "953dbc19443aa9314c44b7217a16873347e6840d", + "url": "https://api.github.com/repos/mongodb/mongo-php-library/zipball/e4a7594ac4b31635fa77455c4038a7013024ba28", + "reference": "e4a7594ac4b31635fa77455c4038a7013024ba28", "shasum": "" }, "require": { "ext-hash": "*", "ext-json": "*", - "ext-mongodb": "^1.8.1", - "jean85/pretty-package-versions": "^1.2", - "php": "^7.0 || ^8.0", + "ext-mongodb": "^1.13.0", + "jean85/pretty-package-versions": "^1.2 || ^2.0.1", + "php": "^7.2 || ^8.0", "symfony/polyfill-php80": "^1.19" }, "require-dev": { - "squizlabs/php_codesniffer": "^3.5, <3.5.5", - "symfony/phpunit-bridge": "5.x-dev" + "doctrine/coding-standard": "^9.0", + "squizlabs/php_codesniffer": "^3.6", + "symfony/phpunit-bridge": "^5.2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.8.x-dev" + "dev-master": "1.12.x-dev" } }, "autoload": { - "psr-4": { - "MongoDB\\": "src/" - }, "files": [ "src/functions.php" - ] + ], + "psr-4": { + "MongoDB\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -198,9 +130,9 @@ ], "support": { "issues": "https://github.com/mongodb/mongo-php-library/issues", - "source": "https://github.com/mongodb/mongo-php-library/tree/1.8.0" + "source": "https://github.com/mongodb/mongo-php-library/tree/1.12.0" }, - "time": "2020-11-25T12:26:02+00:00" + "time": "2022-03-23T20:18:39+00:00" }, { "name": "swiftmailer/swiftmailer", @@ -258,20 +190,21 @@ "issues": "https://github.com/swiftmailer/swiftmailer/issues", "source": "https://github.com/swiftmailer/swiftmailer/tree/v5.4.12" }, + "abandoned": "symfony/mailer", "time": "2018-07-31T09:26:32+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.20.0", + "version": "v1.26.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de" + "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/e70aa8b064c5b72d3df2abd5ab1e90464ad009de", - "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/cfa0ae98841b9e461207c13ab093d76b0fa7bace", + "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace", "shasum": "" }, "require": { @@ -280,7 +213,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.20-dev" + "dev-main": "1.26-dev" }, "thanks": { "name": "symfony/polyfill", @@ -288,12 +221,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" - }, "files": [ "bootstrap.php" ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, "classmap": [ "Resources/stubs" ] @@ -325,7 +258,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.20.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.26.0" }, "funding": [ { @@ -341,7 +274,7 @@ "type": "tidelift" } ], - "time": "2020-10-23T14:02:19+00:00" + "time": "2022-05-10T07:21:04+00:00" } ], "packages-dev": [], @@ -352,5 +285,5 @@ "prefer-lowest": false, "platform": [], "platform-dev": [], - "plugin-api-version": "2.0.0" + "plugin-api-version": "2.3.0" } diff --git a/boilerplate/demo/src/sample.php b/boilerplate/demo/src/sample.php index 9eec48d46496dab6e58629d91b2d181cb15cb937..a1f60329e09ee3a643d3f84dd217eb8b31ffbd91 100644 --- a/boilerplate/demo/src/sample.php +++ b/boilerplate/demo/src/sample.php @@ -7,4 +7,5 @@ * @author: canals */ -$sample ='hungry heart'; \ No newline at end of file +$sample ='hungry heart'; +return $sample; \ No newline at end of file diff --git a/boilerplate/demo/web/index.php b/boilerplate/demo/web/index.php index 365327029127f02c9bb0d52a7c03040930a758bc..6dc7b552f53ebbc5f12be6acb26e166ccdcc5eb3 100644 --- a/boilerplate/demo/web/index.php +++ b/boilerplate/demo/web/index.php @@ -7,7 +7,7 @@ * @author: canals */ -require_once __DIR__ . '/../src/sample.php'; +$sample = require_once __DIR__ . '/../src/sample.php'; echo <<<EOT <!-- DOCTYPE html--> diff --git a/boilerplate/demo/web/mail.php b/boilerplate/demo/web/mail.php index 553e96dfccf7fe9eb140196cbe961592f066fb43..12b61ba2d5c77a6d4200c6659e25ed4202f90ed3 100644 --- a/boilerplate/demo/web/mail.php +++ b/boilerplate/demo/web/mail.php @@ -9,7 +9,7 @@ require __DIR__ . '/../src/vendor/autoload.php'; -$mailer = new Swift_Mailer( new Swift_SmtpTransport('mail', 1025) ); +$mailer = new Swift_Mailer( new Swift_SmtpTransport('mail', 1025, '') ); $message = (new Swift_Message('test subject')) ->setFrom( ['john.doe@mix.com'=>'john doe']) diff --git a/boilerplate/sample.docker-compose.yml b/boilerplate/sample.docker-compose.yml index e1ba096fb100ac50b95ba959fd911747b8608678..f41632a5b78b144d594c9701b4dd22921a279a6a 100644 --- a/boilerplate/sample.docker-compose.yml +++ b/boilerplate/sample.docker-compose.yml @@ -21,14 +21,12 @@ services: working_dir : /var/www/src networks: - local_network - links : - - mysql:db -# - mongo:mongo -# - mail:mail -# - postgres:pg + depends_on: + - mysql + - postgres php: - image: canals/php:8.0-cli + image: canals/php:8.1-cli expose: - "8000" ports: @@ -49,7 +47,6 @@ services: # mysql/mariadb + adminer / can be replaced by mariadb ############################# mysql: -# image: mysql:5.6 image: mariadb:latest container_name: mysql.dev.local command: --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8_general_ci @@ -59,7 +56,9 @@ services: - MYSQL_PASSWORD=secure - MYSQL_DATABASE=mydatab networks: - - local_network + local_network: + aliases: + - db ports: - "3603:3306" volumes : @@ -71,9 +70,8 @@ services: - "8080:8080" networks: - local_network - links: - - mysql:db - + depends_on: + - mysql @@ -81,25 +79,29 @@ services: ################################## # postgres + adminer ################################### -# postgres: -# image: postgres -# environment : -# - POSTGRES_PASSWORD = pgroot -# - POSTGRES_USER = pguser -# networks: -# - local_network -# ports: -# - "5432:5432" + postgres: + image: postgres + environment : + - POSTGRES_PASSWORD = pgroot + - POSTGRES_USER = pguser + networks: + local_network: + aliases: + - pg + ports: + - "5432:5432" + + adminer-pg: + image: adminer + networks: + - local_network + ports: + - "8088:8080" + depends_on: + - postgres + + -# adminer-pg: -# image: adminer -# networks: -# - local_network -# ports: -# - "8088:8080" -# links: -# - postgres:db -# ################################################ # mongodb & mongo-express diff --git a/boilerplate/web.env b/boilerplate/web.env index 4f5f56cccef5d295e95e9d845b278dfeaf2023ed..53b3cf8ac8bbabd3cf747c45653ae77a4c19be3a 100644 --- a/boilerplate/web.env +++ b/boilerplate/web.env @@ -1,6 +1,6 @@ # # environment variables exported to the container -# classical use cas : http proxys when docker runs behind +# classical use case : http proxys when docker runs behind # a corporate proxy #