From 8144be2707a63eeb61e9bf0514a4e089dd873cd1 Mon Sep 17 00:00:00 2001 From: Matt Strom Date: Tue, 6 Dec 2022 18:12:52 -0800 Subject: [PATCH] chore: support for local dev and debugging via docker --- Example/.gitignore | 2 ++ Example/Dockerfile | 15 ++++++++++++++ Example/composer.json | 21 ++++++++++++++++++++ Example/{ => src}/index.php | 5 +++-- Example/{ => src}/pdp.php | 0 Example/{ => src}/tpl-default.php | 0 Example/{ => src}/tpl-layout1.php | 0 Example/{ => src}/tpl-layout2.php | 0 README.md | 6 ++++++ docker-compose.yml | 12 ++++++++--- docker/apache/sites-enabled/000-default.conf | 11 ++++++++++ docker/php/conf.d/error_reporting.ini | 1 + docker/php/conf.d/xdebug.ini | 6 ++++++ 13 files changed, 74 insertions(+), 5 deletions(-) create mode 100644 Example/.gitignore create mode 100644 Example/Dockerfile create mode 100644 Example/composer.json rename Example/{ => src}/index.php (99%) rename Example/{ => src}/pdp.php (100%) rename Example/{ => src}/tpl-default.php (100%) rename Example/{ => src}/tpl-layout1.php (100%) rename Example/{ => src}/tpl-layout2.php (100%) create mode 100644 docker/apache/sites-enabled/000-default.conf create mode 100644 docker/php/conf.d/error_reporting.ini create mode 100644 docker/php/conf.d/xdebug.ini diff --git a/Example/.gitignore b/Example/.gitignore new file mode 100644 index 0000000..0bfe817 --- /dev/null +++ b/Example/.gitignore @@ -0,0 +1,2 @@ +vendor/* +composer.lock diff --git a/Example/Dockerfile b/Example/Dockerfile new file mode 100644 index 0000000..8ad6520 --- /dev/null +++ b/Example/Dockerfile @@ -0,0 +1,15 @@ +FROM php:7.4-apache + +COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer + +RUN \ + pecl install xdebug && \ + docker-php-ext-enable xdebug + +WORKDIR /var/www/html + +COPY . /var/www/html + +RUN \ + cd Example && \ + composer install diff --git a/Example/composer.json b/Example/composer.json new file mode 100644 index 0000000..66b9c1f --- /dev/null +++ b/Example/composer.json @@ -0,0 +1,21 @@ +{ + "name": "evolv/php-sdk-demo", + "type": "project", + "autoload": { + "psr-4": { + "Evolv\\PhpSdkDemo\\": "src/" + } + }, + "repositories": [ + { + "type": "path", + "url": "..", + "options": { + "symlink": true + } + } + ], + "require": { + "evolv/php-sdk": "@dev" + } +} diff --git a/Example/index.php b/Example/src/index.php similarity index 99% rename from Example/index.php rename to Example/src/index.php index 1e75860..f96d1ef 100644 --- a/Example/index.php +++ b/Example/src/index.php @@ -2,10 +2,11 @@ declare (strict_types=1); -use Evolv\EvolvClient; - +# Must be invoked once at top-level for Composer require_once __DIR__ . '/../vendor/autoload.php'; +use Evolv\EvolvClient; + function display($arr, $title = null) { if ($title) { diff --git a/Example/pdp.php b/Example/src/pdp.php similarity index 100% rename from Example/pdp.php rename to Example/src/pdp.php diff --git a/Example/tpl-default.php b/Example/src/tpl-default.php similarity index 100% rename from Example/tpl-default.php rename to Example/src/tpl-default.php diff --git a/Example/tpl-layout1.php b/Example/src/tpl-layout1.php similarity index 100% rename from Example/tpl-layout1.php rename to Example/src/tpl-layout1.php diff --git a/Example/tpl-layout2.php b/Example/src/tpl-layout2.php similarity index 100% rename from Example/tpl-layout2.php rename to Example/src/tpl-layout2.php diff --git a/README.md b/README.md index 292d08c..be69d9a 100644 --- a/README.md +++ b/README.md @@ -51,3 +51,9 @@ evolv/php-sdk Evolv Delivers Autonomous Optimization Across Web & Mobile. You can find out more by visiting: https://www.evolv.ai/ + +## Local Development + +```shell +docker-compose up -d +``` diff --git a/docker-compose.yml b/docker-compose.yml index 6dc4114..51c542c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,9 +3,15 @@ version: '3.8' services: php-apache-environment: container_name: php-sdk - image: php:7.4-apache + build: + dockerfile: Example/Dockerfile + context: . volumes: - - ./:/var/www/html/ - - ./php.ini:/usr/local/etc/php/php.ini + - .:/var/www/html/ +# - /var/www/html/Example/vendor + - ./docker/apache/sites-enabled:/etc/apache2/sites-enabled +# - ./php.ini:/usr/local/etc/php/php.ini + - ./docker/php/conf.d/xdebug.ini:/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini + - ./docker/php/conf.d/error_reporting.ini:/usr/local/etc/php/conf.d/error_reporting.ini ports: - 8000:80 diff --git a/docker/apache/sites-enabled/000-default.conf b/docker/apache/sites-enabled/000-default.conf new file mode 100644 index 0000000..7afb4de --- /dev/null +++ b/docker/apache/sites-enabled/000-default.conf @@ -0,0 +1,11 @@ + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/html/Example/src + DirectoryIndex index.php + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + diff --git a/docker/php/conf.d/error_reporting.ini b/docker/php/conf.d/error_reporting.ini new file mode 100644 index 0000000..7e566f4 --- /dev/null +++ b/docker/php/conf.d/error_reporting.ini @@ -0,0 +1 @@ +error_reporting=E_ALL diff --git a/docker/php/conf.d/xdebug.ini b/docker/php/conf.d/xdebug.ini new file mode 100644 index 0000000..9c37b9c --- /dev/null +++ b/docker/php/conf.d/xdebug.ini @@ -0,0 +1,6 @@ +zend_extension=xdebug + +[xdebug] +xdebug.mode=develop,debug +xdebug.client_host=host.docker.internal +xdebug.start_with_request=yes