diff --git a/.ddev/config.yaml b/.ddev/config.yaml new file mode 100644 index 0000000..b3ba3ba --- /dev/null +++ b/.ddev/config.yaml @@ -0,0 +1,283 @@ +name: mautic-sentry-bundle +type: php +docroot: "" +php_version: "8.1" +webserver_type: nginx-fpm +xdebug_enabled: false +additional_hostnames: [] +additional_fqdns: [] +database: + type: mariadb + version: "10.11" +omit_containers: [db] +use_dns_when_possible: true +composer_version: "2" +web_environment: [] +corepack_enable: false +webimage_extra_packages: [php8.1-imap] + +# Key features of DDEV's config.yaml: + +# name: # Name of the project, automatically provides +# http://projectname.ddev.site and https://projectname.ddev.site + +# type: # backdrop, craftcms, django4, drupal, drupal6, drupal7, laravel, magento, magento2, php, python, shopware6, silverstripe, typo3, wordpress +# See https://ddev.readthedocs.io/en/stable/users/quickstart/ for more +# information on the different project types +# "drupal" covers recent Drupal 8+ + +# docroot: # Relative path to the directory containing index.php. + +# php_version: "8.2" # PHP version to use, "5.6", "7.0", "7.1", "7.2", "7.3", "7.4", "8.0", "8.1", "8.2", "8.3", "8.4" + +# You can explicitly specify the webimage but this +# is not recommended, as the images are often closely tied to DDEV's' behavior, +# so this can break upgrades. + +# webimage: # nginx/php docker image. + +# database: +# type: # mysql, mariadb, postgres +# version: # database version, like "10.11" or "8.0" +# MariaDB versions can be 5.5-10.8, 10.11, and 11.4. +# MySQL versions can be 5.5-8.0. +# PostgreSQL versions can be 9-17. + +# router_http_port: # Port to be used for http (defaults to global configuration, usually 80) +# router_https_port: # Port for https (defaults to global configuration, usually 443) + +# xdebug_enabled: false # Set to true to enable Xdebug and "ddev start" or "ddev restart" +# Note that for most people the commands +# "ddev xdebug" to enable Xdebug and "ddev xdebug off" to disable it work better, +# as leaving Xdebug enabled all the time is a big performance hit. + +# xhprof_enabled: false # Set to true to enable Xhprof and "ddev start" or "ddev restart" +# Note that for most people the commands +# "ddev xhprof" to enable Xhprof and "ddev xhprof off" to disable it work better, +# as leaving Xhprof enabled all the time is a big performance hit. + +# webserver_type: nginx-fpm, apache-fpm, or nginx-gunicorn + +# timezone: Europe/Berlin +# If timezone is unset, DDEV will attempt to derive it from the host system timezone +# using the $TZ environment variable or the /etc/localtime symlink. +# This is the timezone used in the containers and by PHP; +# it can be set to any valid timezone, +# see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones +# For example Europe/Dublin or MST7MDT + +# composer_root: +# Relative path to the Composer root directory from the project root. This is +# the directory which contains the composer.json and where all Composer related +# commands are executed. + +# composer_version: "2" +# You can set it to "" or "2" (default) for Composer v2 or "1" for Composer v1 +# to use the latest major version available at the time your container is built. +# It is also possible to use each other Composer version channel. This includes: +# - 2.2 (latest Composer LTS version) +# - stable +# - preview +# - snapshot +# Alternatively, an explicit Composer version may be specified, for example "2.2.18". +# To reinstall Composer after the image was built, run "ddev debug rebuild". + +# nodejs_version: "20" +# change from the default system Node.js version to any other version. +# See https://ddev.readthedocs.io/en/stable/users/configuration/config/#nodejs_version for more information +# and https://www.npmjs.com/package/n#specifying-nodejs-versions for the full documentation, +# Note that using of 'ddev nvm' is discouraged because "nodejs_version" is much easier to use, +# can specify any version, and is more robust than using 'nvm'. + +# corepack_enable: false +# Change to 'true' to 'corepack enable' and gain access to latest versions of yarn/pnpm + +# additional_hostnames: +# - somename +# - someothername +# would provide http and https URLs for "somename.ddev.site" +# and "someothername.ddev.site". + +# additional_fqdns: +# - example.com +# - sub1.example.com +# would provide http and https URLs for "example.com" and "sub1.example.com" +# Please take care with this because it can cause great confusion. + +# upload_dirs: "custom/upload/dir" +# +# upload_dirs: +# - custom/upload/dir +# - ../private +# +# would set the destination paths for ddev import-files to /custom/upload/dir +# When Mutagen is enabled this path is bind-mounted so that all the files +# in the upload_dirs don't have to be synced into Mutagen. + +# disable_upload_dirs_warning: false +# If true, turns off the normal warning that says +# "You have Mutagen enabled and your 'php' project type doesn't have upload_dirs set" + +# ddev_version_constraint: "" +# Example: +# ddev_version_constraint: ">= 1.22.4" +# This will enforce that the running ddev version is within this constraint. +# See https://github.com/Masterminds/semver#checking-version-constraints for +# supported constraint formats + +# working_dir: +# web: /var/www/html +# db: /home +# would set the default working directory for the web and db services. +# These values specify the destination directory for ddev ssh and the +# directory in which commands passed into ddev exec are run. + +# omit_containers: [db, ddev-ssh-agent] +# Currently only these containers are supported. Some containers can also be +# omitted globally in the ~/.ddev/global_config.yaml. Note that if you omit +# the "db" container, several standard features of DDEV that access the +# database container will be unusable. In the global configuration it is also +# possible to omit ddev-router, but not here. + +# performance_mode: "global" +# DDEV offers performance optimization strategies to improve the filesystem +# performance depending on your host system. Should be configured globally. +# +# If set, will override the global config. Possible values are: +# - "global": uses the value from the global config. +# - "none": disables performance optimization for this project. +# - "mutagen": enables Mutagen for this project. +# - "nfs": enables NFS for this project. +# +# See https://ddev.readthedocs.io/en/stable/users/install/performance/#nfs +# See https://ddev.readthedocs.io/en/stable/users/install/performance/#mutagen + +# fail_on_hook_fail: False +# Decide whether 'ddev start' should be interrupted by a failing hook + +# host_https_port: "59002" +# The host port binding for https can be explicitly specified. It is +# dynamic unless otherwise specified. +# This is not used by most people, most people use the *router* instead +# of the localhost port. + +# host_webserver_port: "59001" +# The host port binding for the ddev-webserver can be explicitly specified. It is +# dynamic unless otherwise specified. +# This is not used by most people, most people use the *router* instead +# of the localhost port. + +# host_db_port: "59002" +# The host port binding for the ddev-dbserver can be explicitly specified. It is dynamic +# unless explicitly specified. + +# mailpit_http_port: "8025" +# mailpit_https_port: "8026" +# The Mailpit ports can be changed from the default 8025 and 8026 + +# host_mailpit_port: "8025" +# The mailpit port is not normally bound on the host at all, instead being routed +# through ddev-router, but it can be bound directly to localhost if specified here. + +# webimage_extra_packages: [php7.4-tidy, php-bcmath] +# Extra Debian packages that are needed in the webimage can be added here + +# dbimage_extra_packages: [telnet,netcat] +# Extra Debian packages that are needed in the dbimage can be added here + +# use_dns_when_possible: true +# If the host has internet access and the domain configured can +# successfully be looked up, DNS will be used for hostname resolution +# instead of editing /etc/hosts +# Defaults to true + +# project_tld: ddev.site +# The top-level domain used for project URLs +# The default "ddev.site" allows DNS lookup via a wildcard +# If you prefer you can change this to "ddev.local" to preserve +# pre-v1.9 behavior. + +# ngrok_args: --basic-auth username:pass1234 +# Provide extra flags to the "ngrok http" command, see +# https://ngrok.com/docs/ngrok-agent/config or run "ngrok http -h" + +# disable_settings_management: false +# If true, DDEV will not create CMS-specific settings files like +# Drupal's settings.php/settings.ddev.php or TYPO3's additional.php +# In this case the user must provide all such settings. + +# You can inject environment variables into the web container with: +# web_environment: +# - SOMEENV=somevalue +# - SOMEOTHERENV=someothervalue + +# no_project_mount: false +# (Experimental) If true, DDEV will not mount the project into the web container; +# the user is responsible for mounting it manually or via a script. +# This is to enable experimentation with alternate file mounting strategies. +# For advanced users only! + +# bind_all_interfaces: false +# If true, host ports will be bound on all network interfaces, +# not the localhost interface only. This means that ports +# will be available on the local network if the host firewall +# allows it. + +# default_container_timeout: 120 +# The default time that DDEV waits for all containers to become ready can be increased from +# the default 120. This helps in importing huge databases, for example. + +#web_extra_exposed_ports: +#- name: nodejs +# container_port: 3000 +# http_port: 2999 +# https_port: 3000 +#- name: something +# container_port: 4000 +# https_port: 4000 +# http_port: 3999 +# Allows a set of extra ports to be exposed via ddev-router +# Fill in all three fields even if you don’t intend to use the https_port! +# If you don’t add https_port, then it defaults to 0 and ddev-router will fail to start. +# +# The port behavior on the ddev-webserver must be arranged separately, for example +# using web_extra_daemons. +# For example, with a web app on port 3000 inside the container, this config would +# expose that web app on https://.ddev.site:9999 and http://.ddev.site:9998 +# web_extra_exposed_ports: +# - name: myapp +# container_port: 3000 +# http_port: 9998 +# https_port: 9999 + +#web_extra_daemons: +#- name: "http-1" +# command: "/var/www/html/node_modules/.bin/http-server -p 3000" +# directory: /var/www/html +#- name: "http-2" +# command: "/var/www/html/node_modules/.bin/http-server /var/www/html/sub -p 3000" +# directory: /var/www/html + +# override_config: false +# By default, config.*.yaml files are *merged* into the configuration +# But this means that some things can't be overridden +# For example, if you have 'use_dns_when_possible: true'' you can't override it with a merge +# and you can't erase existing hooks or all environment variables. +# However, with "override_config: true" in a particular config.*.yaml file, +# 'use_dns_when_possible: false' can override the existing values, and +# hooks: +# post-start: [] +# or +# web_environment: [] +# or +# additional_hostnames: [] +# can have their intended affect. 'override_config' affects only behavior of the +# config.*.yaml file it exists in. + +# Many DDEV commands can be extended to run tasks before or after the +# DDEV command is executed, for example "post-start", "post-import-db", +# "pre-composer", "post-composer" +# See https://ddev.readthedocs.io/en/stable/users/extend/custom-commands/ for more +# information on the commands that can be extended and the tasks you can define +# for them. Example: +#hooks: diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 5682eaa..a35f801 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -48,6 +48,6 @@ jobs: - name: Upload Scrutinizer coverage uses: sudo-bot/action-scrutinizer@latest # Do not run this step on forked versions of the main repository (example: contributor forks) - if: github.repository == ':vendor/:package_name' + if: github.repository == 'swisnl/mautic-sentry-bundle' with: cli-args: "--format=php-clover coverage.clover --revision=${{ github.event.pull_request.head.sha || github.sha }}" diff --git a/.php-cs-fixer.dist.php b/.php-cs-fixer.dist.php index 2bc57e6..c6c891c 100644 --- a/.php-cs-fixer.dist.php +++ b/.php-cs-fixer.dist.php @@ -2,8 +2,7 @@ $finder = (new PhpCsFixer\Finder()) ->in([ - __DIR__.'/src', - __DIR__.'/tests' + __DIR__.'/', ]) ; diff --git a/CHANGELOG.md b/CHANGELOG.md index e6dc5d0..694be41 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -All notable changes to `:package_name` will be documented in this file. +All notable changes to `mautic-sentry-bundle` will be documented in this file. Updates should follow the [Keep a CHANGELOG](https://keepachangelog.com/) principles. diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 2dc0a86..af5ed16 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -55,7 +55,7 @@ further defined and clarified by project maintainers. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported by contacting the project team at `:author_email`. All +reported by contacting the project team at `tbiesenbeek@swis.nl`. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 126fc7f..05abe29 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,7 +2,7 @@ Contributions are **welcome** and will be fully **credited**. -We accept contributions via Pull Requests on [Github](https://github.com/:vendor/:package_name). +We accept contributions via Pull Requests on [Github](https://github.com/swisnl/mautic-sentry-bundle). ## Pull Requests diff --git a/README.md b/README.md index f6be25e..c210991 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# :package_name +# mautic-sentry-bundle [![Latest Version on Packagist][ico-version]][link-packagist] [![Software License][ico-license]](LICENSE.md) @@ -9,51 +9,18 @@ [![Total Downloads][ico-downloads]][link-downloads] [![Made by SWIS][ico-swis]][link-swis] -**Note:** Replace ```:author_name``` ```:author_username``` ```:author_website``` ```:author_email``` ```:vendor``` ```:package_name``` ```:package_description``` with their correct values in [README.md](README.md), [CHANGELOG.md](CHANGELOG.md), [CONTRIBUTING.md](CONTRIBUTING.md), [LICENSE.md](LICENSE.md) and [composer.json](composer.json) files, then delete this line. You can run `$ php prefill.php` in the command line to make all replacements at once. Delete the file prefill.php as well. - -This is where your description should go. Try and limit it to a paragraph or two, and maybe throw in a mention of what -PSRs you support to avoid any confusion with users and contributors. - -## Structure - -If any of the following are applicable to your project, then the directory structure should follow industry best practices by being named the following. - -``` -bin/ -build/ -docs/ -config/ -src/ -tests/ -vendor/ -``` - - ## Install Via Composer ``` bash -$ composer require :vendor/:package_name -``` - -## Usage - -``` php -$skeleton = new League\Skeleton(); -echo $skeleton->echoPhrase('Hello, League!'); +$ composer require swisnl/mautic-sentry-bundle ``` ## Change log Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently. -## Testing - -``` bash -$ composer test -``` - ## Contributing Please see [CONTRIBUTING](CONTRIBUTING.md) and [CODE_OF_CONDUCT](CODE_OF_CONDUCT.md) for details. @@ -64,7 +31,7 @@ If you discover any security related issues, please email security@swis.nl inste ## Credits -- [:author_name][link-author] +- [Tim Biesenbeek][link-author] - [All Contributors][link-contributors] ## License @@ -77,21 +44,21 @@ This package is [Treeware](https://treeware.earth). If you use it in production, [SWIS][link-swis] is a web agency from Leiden, the Netherlands. We love working with open source software. -[ico-version]: https://img.shields.io/packagist/v/:vendor/:package_name.svg?style=flat-square +[ico-version]: https://img.shields.io/packagist/v/swisnl/mautic-sentry-bundle.svg?style=flat-square [ico-license]: https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square [ico-treeware]: https://img.shields.io/badge/Treeware-%F0%9F%8C%B3-lightgreen.svg?style=flat-square -[ico-github-actions]: https://img.shields.io/github/actions/workflow/status/:vendor/:package_name/tests.yml?label=tests&branch=master&style=flat-square -[ico-scrutinizer]: https://img.shields.io/scrutinizer/coverage/g/:vendor/:package_name.svg?style=flat-square -[ico-code-quality]: https://img.shields.io/scrutinizer/g/:vendor/:package_name.svg?style=flat-square -[ico-downloads]: https://img.shields.io/packagist/dt/:vendor/:package_name.svg?style=flat-square +[ico-github-actions]: https://img.shields.io/github/actions/workflow/status/swisnl/mautic-sentry-bundle/tests.yml?label=tests&branch=master&style=flat-square +[ico-scrutinizer]: https://img.shields.io/scrutinizer/coverage/g/swisnl/mautic-sentry-bundle.svg?style=flat-square +[ico-code-quality]: https://img.shields.io/scrutinizer/g/swisnl/mautic-sentry-bundle.svg?style=flat-square +[ico-downloads]: https://img.shields.io/packagist/dt/swisnl/mautic-sentry-bundle.svg?style=flat-square [ico-swis]: https://img.shields.io/badge/%F0%9F%9A%80-made%20by%20SWIS-%230737A9.svg?style=flat-square -[link-packagist]: https://packagist.org/packages/:vendor/:package_name -[link-github-actions]: https://github.com/:vendor/:package_name/actions/workflows/tests.yml -[link-scrutinizer]: https://scrutinizer-ci.com/g/:vendor/:package_name/code-structure -[link-code-quality]: https://scrutinizer-ci.com/g/:vendor/:package_name -[link-downloads]: https://packagist.org/packages/:vendor/:package_name -[link-treeware]: https://plant.treeware.earth/:vendor/:package_name -[link-author]: https://github.com/:author_username +[link-packagist]: https://packagist.org/packages/swisnl/mautic-sentry-bundle +[link-github-actions]: https://github.com/swisnl/mautic-sentry-bundle/actions/workflows/tests.yml +[link-scrutinizer]: https://scrutinizer-ci.com/g/swisnl/mautic-sentry-bundle/code-structure +[link-code-quality]: https://scrutinizer-ci.com/g/swisnl/mautic-sentry-bundle +[link-downloads]: https://packagist.org/packages/swisnl/mautic-sentry-bundle +[link-treeware]: https://plant.treeware.earth/swisnl/mautic-sentry-bundle +[link-author]: https://github.com/swisnl [link-contributors]: ../../contributors [link-swis]: https://www.swis.nl diff --git a/composer.json b/composer.json index 939bab0..6736780 100644 --- a/composer.json +++ b/composer.json @@ -1,18 +1,22 @@ { - "name": ":vendor/:package_name", - "type": "library", - "description": ":package_description", + "name": "swisnl/mautic-sentry-bundle", + "description": "Sentry integration for Mautic", + "type": "mautic-plugin", "keywords": [ - ":vendor", - ":package_name" + "mautic", + "plugin", + "integration", + "sentry", + "swisnl", + "mautic-sentry-bundle" ], - "homepage": "https://github.com/:vendor/:package_name", + "homepage": "https://github.com/swisnl/mautic-sentry-bundle", "license": "MIT", "authors": [ { - "name": ":author_name", - "email": ":author_email", - "homepage": ":author_website", + "name": "Tim Biesenbeek", + "email": "tbiesenbeek@swis.nl", + "homepage": "https://www.swis.nl", "role": "Developer" } ], @@ -23,18 +27,7 @@ "friendsofphp/php-cs-fixer": "^3.8", "phpunit/phpunit" : "^9.5" }, - "autoload": { - "psr-4": { - ":vendor\\:package_name\\": "src" - } - }, - "autoload-dev": { - "psr-4": { - ":vendor\\:package_name\\Tests\\": "tests" - } - }, "scripts": { - "test": "phpunit", "check-style": "php-cs-fixer fix --dry-run -v", "fix-style": "php-cs-fixer fix" }, diff --git a/phpunit.xml.dist b/phpunit.xml.dist deleted file mode 100644 index 199119e..0000000 --- a/phpunit.xml.dist +++ /dev/null @@ -1,28 +0,0 @@ - - - - - tests - - - - - src/ - - - - - - - - - diff --git a/prefill.php b/prefill.php deleted file mode 100644 index 875fa60..0000000 --- a/prefill.php +++ /dev/null @@ -1,112 +0,0 @@ - ['Your name', 'e.g. Björn Brala', ''], - 'author_github_username' => ['Your GitHub username', ' in https://github.com/username', 'swisnl'], - 'author_email' => ['Your email address', 'e.g. bbrala@swis.nl', ''], - 'author_twitter' => ['Your twitter username', '', 'swisleiden'], - 'author_website' => ['Your website', '', 'https://www.swis.nl'], - - 'package_vendor' => ['Package vendor', ' in https://github.com/vendor/package', 'swisnl'], - 'package_name' => ['Package name', ' in https://github.com/vendor/package', ''], - 'package_description' => ['Package very short description', '', ''], - - 'psr4_namespace' => ['PSR-4 namespace', 'usually, Vendor\\Package', 'Swis\\{package_name}'], -]; - -$values = []; - -$replacements = [ - ':vendor\\\\:package_name\\\\' => function () use(&$values) { return str_replace('\\', '\\\\', $values['psr4_namespace']) . '\\\\'; }, - ':author_name' => function () use(&$values) { return $values['author_name']; }, - ':author_username' => function () use(&$values) { return $values['author_github_username']; }, - ':author_website' => function () use(&$values) { return $values['author_website'] ?: ('https://github.com/' . $values['author_github_username']); }, - ':author_email' => function () use(&$values) { return $values['author_email'] ?: ($values['author_github_username'] . '@example.com'); }, - ':vendor' => function () use(&$values) { return $values['package_vendor']; }, - ':package_name' => function () use(&$values) { return $values['package_name']; }, - ':package_description' => function () use(&$values) { return $values['package_description']; }, - 'League\\Skeleton' => function () use(&$values) { return $values['psr4_namespace']; }, -]; - -function read_from_console ($prompt) { - if ( function_exists('readline') ) { - $line = trim(readline($prompt)); - if (!empty($line)) { - readline_add_history($line); - } - } else { - echo $prompt; - $line = trim(fgets(STDIN)); - } - return $line; -} - -function interpolate($text, $values) -{ - if (!preg_match_all('/\{(\w+)\}/', $text, $m)) { - return $text; - } - foreach ($m[0] as $k => $str) { - $f = $m[1][$k]; - $text = str_replace($str, $values[$f], $text); - } - return $text; -} - -$modify = 'n'; -do { - if ($modify == 'q') { - exit; - } - - $values = []; - - echo "----------------------------------------------------------------------\n"; - echo "Please, provide the following information:\n"; - echo "----------------------------------------------------------------------\n"; - foreach ($fields as $f => $field) { - $default = isset($field[COL_DEFAULT]) ? interpolate($field[COL_DEFAULT], $values): ''; - $prompt = sprintf( - '%s%s%s: ', - $field[COL_DESCRIPTION], - $field[COL_HELP] ? ' (' . $field[COL_HELP] . ')': '', - $field[COL_DEFAULT] !== '' ? ' [' . $default . ']': '' - ); - $values[$f] = read_from_console($prompt); - if (empty($values[$f])) { - $values[$f] = $default; - } - } - echo "\n"; - - echo "----------------------------------------------------------------------\n"; - echo "Please, check that everything is correct:\n"; - echo "----------------------------------------------------------------------\n"; - foreach ($fields as $f => $field) { - echo $field[COL_DESCRIPTION] . ": $values[$f]\n"; - } - echo "\n"; -} while (($modify = strtolower(read_from_console('Modify files with these values? [y/N/q] '))) != 'y'); -echo "\n"; - -$files = array_merge( - glob(__DIR__ . '/*.md'), - glob(__DIR__ . '/*.xml.dist'), - glob(__DIR__ . '/.github/workflows/*.yml'), - glob(__DIR__ . '/composer.json'), - glob(__DIR__ . '/src/*.php'), - glob(__DIR__ . '/tests/*.php') -); -foreach ($files as $f) { - $contents = file_get_contents($f); - foreach ($replacements as $str => $func) { - $contents = str_replace($str, $func(), $contents); - } - file_put_contents($f, $contents); -} - -echo "Done.\n"; -echo "Now you should remove the file '" . basename(__FILE__) . "'.\n"; diff --git a/src/SkeletonClass.php b/src/SkeletonClass.php deleted file mode 100644 index deade6d..0000000 --- a/src/SkeletonClass.php +++ /dev/null @@ -1,28 +0,0 @@ -assertTrue(true); - } -}