-  
-   Notifications  You must be signed in to change notification settings 
- Fork 5.3k
[Debug] Create a main guide for Debugging #7071
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 1 commit
5dc304c 4c065fd a92b746 c015760 bb389ee 779983d 758a9f7 File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
- Loading branch information
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | 
|---|---|---|
| @@ -1,8 +1,90 @@ | ||
| Debugging | ||
| ========= | ||
| .. index:: | ||
| single: Debugging | ||
|  | ||
| .. toctree:: | ||
| :maxdepth: 1 | ||
| :glob: | ||
| How to Optimize your Development Environment for Debugging | ||
| ========================================================== | ||
|  | ||
| debug/* | ||
| When you work on a Symfony project on your local machine, you should use the | ||
| ``dev`` environment (``app_dev.php`` front controller). This environment | ||
| configuration is optimized for two main purposes. | ||
|   | ||
|  | ||
| * Give the developer accurate feedback whenever something goes wrong (provided | ||
| by the web debug toolbar, nice exception pages, profiler, ...); | ||
| * Be as similar as possible as the production environment to avoid problems | ||
|   | ||
| when deploying the project. | ||
|  | ||
| Disabling the Bootstrap File and Class Caching | ||
| ---------------------------------------------- | ||
|  | ||
| To make Symfony run as fast as possible, it creates big PHP files in your cache | ||
| containing the aggregation of PHP classes your project needs for every request. | ||
| However, this behavior can confuse your IDE or your debugger. This recipe shows | ||
| you how you can tweak this caching mechanism to make it friendlier when you | ||
| need to debug code that involves Symfony classes. | ||
|  | ||
| The ``app_dev.php`` front controller reads as follows by default:: | ||
|  | ||
| // ... | ||
|  | ||
| $loader = require_once __DIR__.'/../app/bootstrap.php.cache'; | ||
| require_once __DIR__.'/../app/AppKernel.php'; | ||
|  | ||
| $kernel = new AppKernel('dev', true); | ||
| $kernel->loadClassCache(); | ||
| $request = Request::createFromGlobals(); | ||
|  | ||
| To make your debugger happier, disable all PHP class caches by removing the | ||
| call to ``loadClassCache()`` and by replacing the require statements like | ||
| below:: | ||
|  | ||
| // ... | ||
|  | ||
| // $loader = require_once __DIR__.'/../app/bootstrap.php.cache'; | ||
| $loader = require_once __DIR__.'/../app/autoload.php'; | ||
| require_once __DIR__.'/../app/AppKernel.php'; | ||
|  | ||
| $kernel = new AppKernel('dev', true); | ||
| // $kernel->loadClassCache(); | ||
| $request = Request::createFromGlobals(); | ||
|  | ||
| .. tip:: | ||
|  | ||
| If you disable the PHP caches, don't forget to revert after your debugging | ||
|   | ||
| session. | ||
|  | ||
| Some IDEs do not like the fact that some classes are stored in different | ||
| locations. To avoid problems, you can either tell your IDE to ignore the PHP | ||
| cache files, or you can change the extension used by Symfony for these files:: | ||
|  | ||
| $kernel->loadClassCache('classes', '.php.cache'); | ||
|   | ||
|  | ||
| Useful Debugging Commands | ||
| ------------------------- | ||
|  | ||
| When developing a large application, it can be hard to keep track of all the | ||
| different services, routes and translations. Luckily, Symfony has some commands | ||
| that can help you visualize and find the information. | ||
|   | ||
|  | ||
| ``debug:container`` | ||
| Displays information about the contents of the Symfony container for all public | ||
| services. To find only those matching a name, append the name as an argument. | ||
|   | ||
|  | ||
| ``debug:config`` | ||
| Shows all configured bundles, their class and their alias. | ||
|   | ||
|  | ||
| ``debug:event-dispatcher`` | ||
| Displays information about all the registered listeners in the event dispatcher. | ||
|  | ||
| ``debug:router`` | ||
| There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Maybe we should reference here the  | ||
| Displays information about all configured routes in the application as a | ||
| table with the name, method, scheme, host and path for each route. | ||
|  | ||
| ``debug:translation <locale>`` | ||
| Shows a table of the translation key, the domain, the translation and the | ||
| fallback translation for all known messages, if translations exist for | ||
|   | ||
| the given locale. | ||
|  | ||
| .. tip:: | ||
|  | ||
| When in doubt how to use a console command, open the help section by | ||
| appending the ``--help`` option. | ||
| There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ( | ||
This file was deleted.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"Your"?