tpaksu/xdebug-toggle

Toggles on/of the already installed xdebug extension on php.ini file.

0.2.1 2020-06-18 07:12 UTC

This package is auto-updated.

Last update: 2024-04-12 17:00:41 UTC


README

Latest Version on Packagist Build Status Quality Score Total Downloads StyleCI

This package automates the XDebug extension activation/deactivation process by adding a console command to Laravel's artisan command. It does these things:

  • Modifying the current INI file used by PHP, located with parsing the "php_info()" output containing the line "Loaded Configuration File: [path/to/php.ini]"
  • Restarting the valet NGINX server with the command valet restart nginx

If you use something else than Laravel Valet, and want to automate your stuff, you can change the XDEBUG_SERVICE_RESTART_COMMAND in your environment file, or the xdebugtoggle.service_restart_command configuration in xdebug-toggle.php configuration file to suit your own.

Installation

You can install the package as a development requirement via composer:

composer require tpaksu/xdebug-toggle --dev

Usage

To enable XDebug in current environment:

php artisan xdebug on

To disable it:

php artisan xdebug off

Configuration

You can export the configuration file by running the command:

php artisan vendor:publish --provider="Tpaksu\XdebugToggle\XdebugToggleServiceProvider"

which includes:

service_restart_command : Gives you the option to run a script after you change the php.ini line with the new XDebug status. The default is

valet restart nginx

which applies the new php.ini configuration on the PHP running on valet's nginx server.

I tried and succeded with this command on Windows running Laragon with nginx:

c:/laragon/bin/nginx/nginx-1.12.0/nginx.exe -p c:/laragon/bin/nginx/nginx-1.12.0 -c conf/nginx.conf -s reload

which I changed with setting this environment variable on .env and ran php artisan config:cache to apply the environment changes:

XDEBUG_SERVICE_RESTART_COMMAND="c:/laragon/bin/nginx/nginx-1.12.0/nginx.exe -p c:/laragon/bin/nginx/nginx-1.12.0 -c conf/nginx.conf -s reload"

I could change the configuration setting on config/xdebug-toggle.php file too. This would also be a valid modification on the path.

Note: Don't forget to run php artisan config:cache to apply new settings when you change any .env parameter or configuration setting. Not only for this package, for all changes inside Laravel.

Testing

Any tests written yet. But I suppose I should.

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Please see CONTRIBUTING for details. Any contributions are welcome.

Security

If you discover any security related issues, please email tpaksu@gmail.com instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.