Initial commit: apps.supersam24.ru
This commit is contained in:
commit
e955e1da36
6566 files changed
+1271095
No files matched your search
Whitespace-only changes.
+52
@@ -0,0 +1,52 @@
|
||||
# Global configuration information used across all the
|
||||
# translations of documentation.
|
||||
#
|
||||
# Import the base theme configuration
|
||||
from cakephpsphinx.config.all import *
|
||||
|
||||
# The version info for the project you're documenting, acts as replacement for
|
||||
# |version| and |release|, also used in various other places throughout the
|
||||
# built documents.
|
||||
#
|
||||
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
release = '3.x'
|
||||
|
||||
# The search index version.
|
||||
search_version = 'debugkit-3'
|
||||
|
||||
# The marketing display name for the book.
|
||||
version_name = ''
|
||||
|
||||
# Project name shown in the black header bar
|
||||
project = 'CakePHP DebugKit'
|
||||
|
||||
# Other versions that display in the version picker menu.
|
||||
version_list = [
|
||||
{'name': '3.x', 'number': '/debugkit/3', 'title': '3.x', 'current': True},
|
||||
{'name': '4.x', 'number': '/debugkit/4', 'title': '4.x'},
|
||||
]
|
||||
|
||||
# Languages available.
|
||||
languages = ['en', 'fr', 'ja', 'pt']
|
||||
|
||||
# The GitHub branch name for this version of the docs
|
||||
# for edit links to point at.
|
||||
branch = '3.x'
|
||||
|
||||
# Current version being built
|
||||
version = '3.x'
|
||||
|
||||
# Language in use for this directory.
|
||||
language = 'en'
|
||||
|
||||
show_root_link = True
|
||||
|
||||
repository = 'cakephp/debug_kit'
|
||||
|
||||
source_path = 'docs/'
|
||||
|
||||
hide_page_contents = ('search', '404', 'contents')
|
||||
|
||||
# DebugKit docs use mp4 videos to show the UI
|
||||
extensions.append('sphinxcontrib.video')
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
import sys, os
|
||||
|
||||
# Append the top level directory of the docs, so we can import from the config dir.
|
||||
sys.path.insert(0, os.path.abspath('..'))
|
||||
|
||||
# Pull in all the configuration options defined in the global config file..
|
||||
from config.all import *
|
||||
|
||||
language = 'en'
|
||||
@@ -0,0 +1,5 @@
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:caption: CakePHP DebugKit
|
||||
|
||||
/index
|
||||
+286
@@ -0,0 +1,286 @@
|
||||
Debug Kit
|
||||
#########
|
||||
|
||||
DebugKit provides a debugging toolbar and enhanced debugging tools for CakePHP
|
||||
applications. It lets you quickly see configuration data, log messages, SQL
|
||||
queries, and timing data for your application.
|
||||
|
||||
.. warning::
|
||||
|
||||
DebugKit is only intended for use in single-user local development
|
||||
environments. You should avoid using DebugKit in shared development
|
||||
environments, staging environments, or any environment where you need to
|
||||
keep configuration data and environment variables hidden.
|
||||
|
||||
Installation
|
||||
============
|
||||
|
||||
By default DebugKit is installed with the default application skeleton. If
|
||||
you've removed it and want to re-install it, you can do so by running the
|
||||
following from your application's ROOT directory (where composer.json file is
|
||||
located)::
|
||||
|
||||
php composer.phar require --dev cakephp/debug_kit "~3.0"
|
||||
|
||||
Then, you need to enable the plugin by executing the following line::
|
||||
|
||||
bin/cake plugin load DebugKit
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
* ``DebugKit.panels`` - Enable or disable panels for DebugKit. You can disable any of the
|
||||
standard panels by::
|
||||
|
||||
// Before loading DebugKit
|
||||
Configure::write('DebugKit.panels', ['DebugKit.Packages' => false]);
|
||||
|
||||
* ``DebugKit.includeSchemaReflection`` - Set to true to enable logging of schema
|
||||
reflection queries. Disabled by default.
|
||||
|
||||
* ``DebugKit.safeTld`` - Set an array of whitelisted TLDs for local development.
|
||||
This can be used to make sure DebugKit displays on hosts it otherwise determines unsafe. ::
|
||||
|
||||
// Allow e.g. http://foo.bar.dev or http://my-shop.local domains locally
|
||||
Configure::write('DebugKit.safeTld', ['dev', 'local', 'example']);
|
||||
|
||||
* ``DebugKit.forceEnable`` - Force DebugKit to display. Careful with this, it is usually
|
||||
safer to simply whitelist your local TLDs. Example usage::
|
||||
|
||||
// Before loading DebugKit
|
||||
Configure::write('DebugKit.forceEnable', true);
|
||||
|
||||
* ``DebugKit.ignoreAuthorization`` - Set to true to ignore Cake Authorization plugin for DebugKit requests. Disabled by default.
|
||||
|
||||
Database Configuration
|
||||
----------------------
|
||||
|
||||
By default DebugKit will store panel data into a SQLite database in your
|
||||
application's ``tmp`` directory. If you cannot install pdo_sqlite, you can
|
||||
configure DebugKit to use a different database by defining a ``debug_kit``
|
||||
connection in your **config/app.php** file. For example::
|
||||
|
||||
/**
|
||||
* The debug_kit connection stores DebugKit meta-data.
|
||||
*/
|
||||
'debug_kit' => [
|
||||
'className' => 'Cake\Database\Connection',
|
||||
'driver' => 'Cake\Database\Driver\Mysql',
|
||||
'persistent' => false,
|
||||
'host' => 'localhost',
|
||||
//'port' => 'nonstandard_port_number',
|
||||
'username' => 'dbusername', // Your DB username here
|
||||
'password' => 'dbpassword', // Your DB password here
|
||||
'database' => 'debug_kit',
|
||||
'encoding' => 'utf8',
|
||||
'timezone' => 'UTC',
|
||||
'cacheMetadata' => true,
|
||||
'quoteIdentifiers' => false,
|
||||
//'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'],
|
||||
],
|
||||
|
||||
You can safely remove the **tmp/debug_kit.sqlite** file at any point.
|
||||
DebugKit will regenerate it when necessary.
|
||||
|
||||
Toolbar Usage
|
||||
=============
|
||||
|
||||
The DebugKit Toolbar is comprised of several panels, which are shown by clicking
|
||||
the CakePHP icon in the bottom right-hand corner of your browser after DebugKit
|
||||
has been installed and loaded. Each panel is comprised of a panel class and view
|
||||
element. Typically, a panel handles the collection and display of a single type
|
||||
of information such as Logs or Request information. You can choose to view panels
|
||||
from the toolbar or add your own custom panels.
|
||||
|
||||
Each panel lets you look at a different aspect of your application:
|
||||
|
||||
* **Cache** See cache usage during a request and clear caches.
|
||||
* **Environment** Display environment variables related to PHP + CakePHP.
|
||||
* **History** Displays a list of previous requests, and allows you to load
|
||||
and view toolbar data from previous requests.
|
||||
* **Include** View the included files grouped by type.
|
||||
* **Log** Display any entries made to the log files this request.
|
||||
* **Packages** Display the list of packages dependencies with their actual
|
||||
version and allow you to check for outdated packages.
|
||||
* **Mail** Display all emails sent during the request and allow to preview
|
||||
emails during development without sending them.
|
||||
* **Request** Displays information about the current request, GET, POST, Cake
|
||||
Parameters, Current Route information and Cookies.
|
||||
* **Session** Display the information currently in the Session.
|
||||
* **Sql Logs** Displays SQL logs for each database connection.
|
||||
* **Timer** Display any timers that were set during the request with
|
||||
``DebugKit\DebugTimer``, and memory usage collected with
|
||||
``DebugKit\DebugMemory``.
|
||||
* **Variables** Display View variables set in controller.
|
||||
* **Deprecations** Display deprecation warnings in a more readable and less
|
||||
disruptive format.
|
||||
|
||||
Using the History Panel
|
||||
=======================
|
||||
|
||||
The history panel is one of the most frequently misunderstood features of
|
||||
DebugKit. It provides a way to view toolbar data from previous requests,
|
||||
including errors and redirects.
|
||||
|
||||
.. figure:: ../_static/history-panel.png
|
||||
:alt: Screenshot of the history panel in debug kit.
|
||||
|
||||
As you can see, the panel contains a list of requests. On the left you can see
|
||||
a dot marking the active request. Clicking any request data will load the panel
|
||||
data for that request. When historical data is loaded the panel titles will
|
||||
transition to indicate that alternative data has been loaded.
|
||||
|
||||
.. only:: html or epub
|
||||
|
||||
.. video:: ../_static/history-panel-use.mp4
|
||||
:alt: Video of history panel in action.
|
||||
|
||||
Using The Mail Panel
|
||||
====================
|
||||
|
||||
The mail panel allow you to track all emails sent during a request.
|
||||
|
||||
.. only:: html or epub
|
||||
|
||||
.. video:: ../_static/mail-panel.mp4
|
||||
:alt: Video of Mail panel in action.
|
||||
|
||||
The mailer preview allows you to easily check emails during development.
|
||||
|
||||
.. only:: html or epub
|
||||
|
||||
.. video:: ../_static/mail-previewer.mp4
|
||||
:alt: Video of Mail panel in action.
|
||||
|
||||
Creating Preview Classes
|
||||
------------------------
|
||||
|
||||
In order to preview emails before sending them, you need to create a preview
|
||||
class that defines the receipient and required template variables for your
|
||||
mailer methods::
|
||||
|
||||
// in src/Mailer/MailPreview/WelcomePreview.php
|
||||
namespace App\Mailer\Preview;
|
||||
|
||||
use DebugKit\Mailer\MailPreview;
|
||||
|
||||
class WelcomePreview extends MailPreview
|
||||
{
|
||||
public function welcome()
|
||||
{
|
||||
$mailer = $this->getMailer('Welcome');
|
||||
// set any template variables receipients for the mailer.
|
||||
|
||||
return $mailer;
|
||||
}
|
||||
}
|
||||
|
||||
MailPreview classes should live in the ``Mailer\Preview`` namespace of your
|
||||
application or plugin, and use the ``Preview`` class suffix.
|
||||
|
||||
Developing Your Own Panels
|
||||
==========================
|
||||
|
||||
You can create your own custom panels for DebugKit to help in debugging your
|
||||
applications.
|
||||
|
||||
Creating a Panel Class
|
||||
----------------------
|
||||
|
||||
Panel Classes simply need to be placed in the **src/Panel** directory. The
|
||||
filename should match the classname, so the class ``MyCustomPanel`` would be
|
||||
expected to have a filename of **src/Panel/MyCustomPanel.php**::
|
||||
|
||||
namespace App\Panel;
|
||||
|
||||
use DebugKit\DebugPanel;
|
||||
|
||||
/**
|
||||
* My Custom Panel
|
||||
*/
|
||||
class MyCustomPanel extends DebugPanel
|
||||
{
|
||||
...
|
||||
}
|
||||
|
||||
Notice that custom panels are required to extend the ``DebugPanel`` class.
|
||||
|
||||
Callbacks
|
||||
---------
|
||||
|
||||
By default Panel objects have two callbacks, allowing them to hook into the
|
||||
current request. Panels subscribe to the ``Controller.initialize`` and
|
||||
``Controller.shutdown`` events. If your panel needs to subscribe to additional
|
||||
events, you can use the ``implementedEvents()`` method to define all of the events
|
||||
your panel is interested in.
|
||||
|
||||
You should refer to the built-in panels for some examples on how you can build
|
||||
panels.
|
||||
|
||||
Panel Elements
|
||||
--------------
|
||||
|
||||
Each Panel is expected to have a view element that renders the content from the
|
||||
panel. The element name must be the underscored inflection of the class name.
|
||||
For example ``SessionPanel`` has an element named **session_panel.ctp**, and
|
||||
SqllogPanel has an element named **sqllog_panel.ctp**. These elements should be
|
||||
located in the root of your **src/Template/Element** directory.
|
||||
|
||||
Custom Titles and Elements
|
||||
--------------------------
|
||||
|
||||
Panels should pick up their title and element name by convention. However, if
|
||||
you need to choose a custom element name or title, you can define methods to
|
||||
customize your panel's behavior:
|
||||
|
||||
- ``title()`` - Configure the title that is displayed in the toolbar.
|
||||
- ``elementName()`` - Configure which element should be used for a given panel.
|
||||
|
||||
Panel Hook Methods
|
||||
------------------
|
||||
|
||||
You can also implement the following hook methods to customize how your panel
|
||||
behaves and appears:
|
||||
|
||||
* ``shutdown(Event $event)`` This method typically collects and prepares the
|
||||
data for the panel. Data is generally stored in ``$this->_data``.
|
||||
* ``summary()`` Can return a string of summary data to be displayed in the
|
||||
toolbar even when a panel is collapsed. Often this is a counter, or short
|
||||
summary information.
|
||||
* ``data()`` Returns the panel's data to be used as element context. This hook
|
||||
method lets you further manipulate the data collected in the ``shutdown()``
|
||||
method. This method **must** return data that can be serialized.
|
||||
|
||||
Panels in Other Plugins
|
||||
-----------------------
|
||||
|
||||
Panels provided by `plugins <https://book.cakephp.org/3.0/en/plugins.html>`_ work
|
||||
almost entirely the same as other plugins, with one minor difference: You must
|
||||
set ``public $plugin`` to be the name of the plugin directory, so that the
|
||||
panel's Elements can be located at render time::
|
||||
|
||||
namespace MyPlugin\Panel;
|
||||
|
||||
use DebugKit\DebugPanel;
|
||||
|
||||
class MyCustomPanel extends DebugPanel
|
||||
{
|
||||
public $plugin = 'MyPlugin';
|
||||
...
|
||||
}
|
||||
|
||||
To use a plugin or app panel, update your application's DebugKit configuration
|
||||
to include the panel::
|
||||
|
||||
// in src/Application.php bootstrap() method add
|
||||
Configure::write('DebugKit.panels', ['App', 'MyPlugin.MyCustom']);
|
||||
$this->addPlugin('DebugKit', ['bootstrap' => true]);
|
||||
|
||||
The above would load all the default panels as well as the ``AppPanel``, and
|
||||
``MyCustomPanel`` panel from ``MyPlugin``.
|
||||
|
||||
Helper Functions
|
||||
================
|
||||
|
||||
* ``sql()`` Dumps out the SQL from an ORM query.
|
||||
* ``sqld()`` Dumps out the SQL from an ORM query, and exits.
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
import sys, os
|
||||
|
||||
# Append the top level directory of the docs, so we can import from the config dir.
|
||||
sys.path.insert(0, os.path.abspath('..'))
|
||||
|
||||
# Pull in all the configuration options defined in the global config file..
|
||||
from config.all import *
|
||||
|
||||
language = 'fr'
|
||||
@@ -0,0 +1,5 @@
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:caption: CakePHP DebugKit
|
||||
|
||||
/index
|
||||
+239
@@ -0,0 +1,239 @@
|
||||
Debug Kit
|
||||
#########
|
||||
|
||||
DebugKit est un plugin supporté par la core team qui fournit une toolbar pour
|
||||
vous aider à debugger les applications CakePHP plus facilement.
|
||||
DebugKit fournit une barre d'outils de débuggage et des outils de débuggage
|
||||
améliorés pour les applications CakePHP. Il vous permet de voir rapidement les
|
||||
données de configuration, les messages de logs, les requêtes SQL et des données
|
||||
de temps d'exécution pour votre application.
|
||||
|
||||
.. warning::
|
||||
|
||||
DebugKit est uniquement destiné à être utilisé dans des environnements de
|
||||
développement local à un seul utilisateur. Vous devez éviter d'utiliser
|
||||
DebugKit dans les environnements de développement partagés, les
|
||||
environnements de stagging où vous devez garder les données de configuration
|
||||
et les variables d'environnement cachées.
|
||||
|
||||
Installation
|
||||
============
|
||||
|
||||
Par défaut DebugKit est installé avec le squelette d'application. Si vous
|
||||
le retirez et voulez le réinstaller, vous pouvez le faire en lançant ce qui
|
||||
suit à partir du répertoire ROOT de votre application (où le fichier
|
||||
composer.json est localisé)::
|
||||
|
||||
php composer.phar require --dev cakephp/debug_kit "~3.0"
|
||||
|
||||
Ensuite, vous devez activer le plugin en exécutant la ligne suivante::
|
||||
|
||||
bin/cake plugin load DebugKit
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
* ``DebugKit.ignoreAuthorization`` - Définie à true pour ignorer le plugin Cake Authorization uniquement pour les requêtes DebugKit. Par défaut à false.
|
||||
|
||||
Stockage de DebugKit
|
||||
====================
|
||||
|
||||
Par défaut, DebugKit utilise une petite base de données SQLite dans le
|
||||
répertoire ``/tmp`` de votre application pour stocker les données du panneau.
|
||||
Si vous voulez que DebugKit stocke ses données ailleurs, vous pouvez définir
|
||||
une connexion ``debug_kit``.
|
||||
|
||||
Configuration de Base de Données
|
||||
--------------------------------
|
||||
|
||||
Par défaut DebugKit va stocker les données du panneau dans une base de données
|
||||
SQLite dans le répertoire ``tmp`` de votre application. Si vous ne pouvez pas
|
||||
installer pdo_sqlite, vous pouvez configurer DebugKit pour utiliser une base
|
||||
de données différente en définissant une connexion ``debug_kit`` dans votre
|
||||
fichier **config/app.php**.
|
||||
|
||||
Utilisation de la Toolbar
|
||||
=========================
|
||||
|
||||
La Toolbar de DebugKit comprend plusieurs panneaux, qui apparaissent en
|
||||
cliquant sur l'icone CakePHP dans le coin en bas à droite de la fenêtre de
|
||||
votre navigateur. Une fois que la toolbar est ouverte, vous devriez voir une
|
||||
série de boutons. Chacun de ces boutons s'agrandit en un panneau avec des
|
||||
informations liées.
|
||||
|
||||
Chaque panneau vous permet d'inspecter plusieurs aspects de votre application:
|
||||
|
||||
* **Cache** Voir l'utilisation du cache pendant une requête et nettoyer les
|
||||
caches.
|
||||
* **Environment** Affiche les variables d'environnement liées à PHP + CakePHP.
|
||||
* **History** Affiche une liste des requêtes précédentes, et vous permet de
|
||||
charger et de voir les données de la toolbar des requêtes précédentes.
|
||||
* **Include** Voir les fichiers inclus groupés par type.
|
||||
* **Log** Affiche toute entrée faite dans les fichiers de log par cette requête.
|
||||
* **Packages** Affiche la liste des dépendances avec leur version courante et
|
||||
vous permet de vérifier les packages qui ne sont pas à jour.
|
||||
* **Mail** Affiche tous les emails envoyés pendant la requête et permet de
|
||||
prévisualiser les emails pendant le développement sans les envoyer.
|
||||
* **Request** Affiche les informations sur la requête courante, GET, POST, les
|
||||
paramètre de Cake, sur la Route Courante et les Cookies.
|
||||
* **Session** Affiche les informations actuellement dans la Session.
|
||||
* **Sql Logs** Affiche les logs SQL pour chaque connexion à la base de données.
|
||||
* **Timer** Affiche tout timers qui a été défini pendant la requête avec
|
||||
``DebugKit\DebugTimer``, et l'utilisation de la mémoire collectée avec
|
||||
``DebugKit\DebugMemory``.
|
||||
* **Variables** Affiche les variables de View définies dans le controller.
|
||||
|
||||
Typiquement, un panneau gère la collection et affiche un type unique
|
||||
d'information comme les Logs ou les informations de la Requête. Vous pouvez
|
||||
choisir de voir les panneaux de la toolbar ou ajouter vos panneaux
|
||||
personnalisés.
|
||||
|
||||
Utiliser le Panneau d'Historique
|
||||
================================
|
||||
|
||||
Le panneau d'historique est l'une des fonctionnalités les plus souvent mal
|
||||
comprise de DebugKit. Elle est un moyen de voir les données de la toolbar des
|
||||
requêtes précédentes, d'inclure les erreurs et les redirects.
|
||||
|
||||
.. figure:: ../_static/history-panel.png
|
||||
:alt: Capture d'écran du panneau historique dans debug kit.
|
||||
|
||||
Comme vous pouvez le voir, le panneau contient une liste des requêtes. Sur la
|
||||
gauche, vous pouvez voir un point marquant la requête actuelle. Cliquer
|
||||
sur n'importe quelles données de requête va charger les données du panneau
|
||||
pour cette requête. Quand les données historiques sont chargées, les titres
|
||||
du panneau seront colorés pour indiquer que des données alternatives ont été
|
||||
chargées.
|
||||
|
||||
.. only:: html or epub
|
||||
|
||||
.. video:: ../_static/history-panel-use.mp4
|
||||
:alt: Video du panneau historique en action.
|
||||
|
||||
Utiliser le Panneau Mail
|
||||
========================
|
||||
|
||||
Le panneau de mail vous permet de pister tous les emails envoyés pendant une
|
||||
requête.
|
||||
|
||||
.. only:: html or epub
|
||||
|
||||
.. video:: ../_static//mail-panel.mp4
|
||||
:alt: Video du panneau Mail en action.
|
||||
|
||||
La prévisualisation de mail vous permet de facilement vérifier les emails
|
||||
pendant le développement.
|
||||
|
||||
.. only:: html or epub
|
||||
|
||||
.. video:: ../_static/img/mail-previewer.gif
|
||||
:alt: Video du panneau Mail en action.
|
||||
|
||||
Développer vos Propres Panneaux
|
||||
===============================
|
||||
|
||||
Vous pouvez créer vos propres panneaux personnalisés pour DebugKit pour
|
||||
améliorer le debug de vos applications.
|
||||
|
||||
Créer une Classe Panel
|
||||
----------------------
|
||||
|
||||
Les Classes Panel doivent simplement être placées dans le répertoire
|
||||
**src/Panel**. Le nom de fichier doit correspondre au nom de la classe, pour
|
||||
que la classe ``MyCustomPanel`` s'attende à avoir un fichier au nom
|
||||
**src/Panel/MyCustomPanel.php**::
|
||||
|
||||
namespace App\Panel;
|
||||
|
||||
use DebugKit\DebugPanel;
|
||||
|
||||
/**
|
||||
* Mon panneau Personnalisé
|
||||
*/
|
||||
class MyCustomPanel extends DebugPanel
|
||||
{
|
||||
...
|
||||
}
|
||||
|
||||
Remarquez que les panneaux personnalisés doivent étendre la classe
|
||||
``DebugPanel``.
|
||||
|
||||
Callbacks
|
||||
---------
|
||||
|
||||
Par défaut, les objets Panel ont deux callbacks, leur permettant de s'insérer
|
||||
dans la requête actuelle. Les panneaux s'inscrivent aux events
|
||||
``Controller.initialize`` et ``Controller.shutdown``. Si votre panneau doit
|
||||
s'inscrire à des events supplémentaires, vous pouvez utiliser la méthode
|
||||
``implementedEvents()`` pour définir tous les events auxquels votre panneau
|
||||
doit s'intéresser.
|
||||
|
||||
Vous devez vous référer aux panneaux intégrés pour avoir quelques exemples sur
|
||||
la façon de construire des panneaux.
|
||||
|
||||
Elements de Panneau
|
||||
-------------------
|
||||
|
||||
Chaque panneau s'attend à avoir un element de view qui rend le contenu du
|
||||
panneau. Le nom de l'element doit être avec une inflection en underscore du
|
||||
nom de la classe.
|
||||
Par exemple ``SessionPanel`` a un element nommé **session_panel.ctp**, et
|
||||
SqllogPanel a un element nommé **sqllog_panel.ctp**. Ces elements doivent être
|
||||
localisés à la racine de votre répertoire **src/Template/Element**.
|
||||
|
||||
Titres Personnalisés et Elements
|
||||
--------------------------------
|
||||
|
||||
Les panneaux doivent choisir leur titre et leur nom d'element par convention.
|
||||
Cependant, si vous avez besoin de choisir un nom ou un titre d'element
|
||||
personnalisé, vous pouvez définir des méthodes pour personnaliser le
|
||||
comportement de votre panneau:
|
||||
|
||||
- ``title()`` - Configure le titre qui est affiché dans la toolbar.
|
||||
- ``elementName()`` Configure l'element qui doit être utilisé pour un panneau
|
||||
donné.
|
||||
|
||||
Méthodes de Hook pour Panneaux
|
||||
------------------------------
|
||||
|
||||
Vous pouvez également implémenter les méthodes suivantes pour personnaliser
|
||||
la manière dont votre panneau se comporte et s'affiche:
|
||||
|
||||
* ``shutdown(Event $event)`` Cette méthode collecte et prépare les données pour
|
||||
panneau. Les données sont généralement stockées dans ``$this->_data``.
|
||||
* ``summary()`` Peut retourner une chaine de caractères contenu un résumé de
|
||||
données qui sera affiché dans la barre lorsque le panneau est replié. C'est
|
||||
souvent un compteur ou un court résumé.
|
||||
* ``data()`` Retourne les données du panneau pour être utilisées dans un
|
||||
element. Cette méthode vous laisse manipuler les données collectées dans
|
||||
la méthode ``shutdown()``. cette méthode **doit** retourner des données
|
||||
sérializables.
|
||||
|
||||
Panneaux dans d'autres Plugins
|
||||
------------------------------
|
||||
|
||||
Les panneaux fournis par les `plugins
|
||||
<https://book.cakephp.org/3.0/fr/plugins.html>`_ fonctionnent presque entièrement de
|
||||
la même façon que les autres plugins, avec quelques différences mineures: Vous
|
||||
devez définir ``public $plugin`` comme nom de répertoire de plugin, pour
|
||||
que les elements du panneau puissent être localisés au moment de les afficher::
|
||||
|
||||
namespace MyPlugin\Panel;
|
||||
|
||||
use DebugKit\DebugPanel;
|
||||
|
||||
class MyCustomPanel extends DebugPanel
|
||||
{
|
||||
public $plugin = 'MyPlugin';
|
||||
...
|
||||
}
|
||||
|
||||
Pour utiliser un panneau de plugin ou de l'application, mettez à jour
|
||||
la configuration du DebugKit de votre application pour ajouter le panneau::
|
||||
|
||||
// dans config/bootstrap.php
|
||||
Configure::write('DebugKit.panels', ['App', 'MyPlugin.MyCustom']);
|
||||
Plugin::load('DebugKit', ['bootstrap' => true]);
|
||||
|
||||
Ce qui est au-dessus charge tous les panneaux par défaut ainsi que le panneau
|
||||
``AppPanel``et le panneau ``MyCustomPanel`` depuis ``MyPlugin``.
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
import sys, os
|
||||
|
||||
# Append the top level directory of the docs, so we can import from the config dir.
|
||||
sys.path.insert(0, os.path.abspath('..'))
|
||||
|
||||
# Pull in all the configuration options defined in the global config file..
|
||||
from config.all import *
|
||||
|
||||
language = 'ja'
|
||||
@@ -0,0 +1,5 @@
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:caption: CakePHP DebugKit
|
||||
|
||||
/index
|
||||
+267
@@ -0,0 +1,267 @@
|
||||
Debug Kit
|
||||
#########
|
||||
|
||||
DebugKit は、CakePHP アプリケーション用のデバッグツールバーと拡張デバッグツールを提供します。
|
||||
アプリケーションの設定データ、ログメッセージ、SQL クエリー、およびタイミングデータをすばやく
|
||||
確認できます。
|
||||
|
||||
.. warning::
|
||||
|
||||
DebugKit は、シングルユーザーのローカル開発環境での使用を目的としています。
|
||||
共有開発環境、ステージング環境、または設定データと環境変数を隠しておく必要がある環境では、
|
||||
DebugKit を使用しないでください。
|
||||
|
||||
インストール
|
||||
============
|
||||
|
||||
デフォルトで、DebugKit はデフォルトのアプリケーションスケルトンにインストールされています。
|
||||
もし削除してしまって再インストールしたい場合は、以下のコマンドをアプリケーションの
|
||||
ルートディレクトリー (composer.json ファイルのある場所) で実行してください。 ::
|
||||
|
||||
php composer.phar require --dev cakephp/debug_kit "~3.0"
|
||||
|
||||
そして以下のコマンドでプラグインを有効化する必要があります。 ::
|
||||
|
||||
bin/cake plugin load DebugKit
|
||||
|
||||
設定
|
||||
====
|
||||
|
||||
* ``DebugKit.panels`` - DebugKit のパネルを有効化または無効化します。
|
||||
次のようにして、任意の標準パネルを無効にすることができます。 ::
|
||||
|
||||
// DebugKit をロードする前に
|
||||
Configure::write('DebugKit.panels', ['DebugKit.Packages' => false]);
|
||||
|
||||
* ``DebugKit.includeSchemaReflection`` - スキーマリフレクションクエリーの
|
||||
ロギングを有効にするには、true に設定します。デフォルトは無効になっています。
|
||||
|
||||
* ``DebugKit.safeTld`` - ローカル開発用のトップレベルドメインのホワイトリストを設定します。
|
||||
これにより安全でないと判断したホスト上で DebugKit を表示できるようになります。 ::
|
||||
|
||||
// 例: http://foo.bar.dev または http://my-shop.local のドメインはローカルとして許可する
|
||||
Configure::write('DebugKit.safeTld', ['dev', 'local', 'example']);
|
||||
|
||||
* ``DebugKit.forceEnable`` - DebugKit を強制的に表示します。これを使うときは注意してください。
|
||||
通常は単純にローカルのトップレベルドメインをホワイトリストに追加したほうが安全です。 使用例::
|
||||
|
||||
// DebugKit をロードする前に
|
||||
Configure::write('DebugKit.forceEnable', true);
|
||||
|
||||
データベース設定
|
||||
----------------
|
||||
|
||||
デフォルトでは DebugKit はアプリケーションの ``/tmp`` 内の SQLite データベースに
|
||||
パネルデータを保持します。もし pdo_sqlite をインストールできない場合は、
|
||||
**config/app.php** ファイル に ``debug_kit`` コネクションを定義すると
|
||||
DebugKit が異なるデータベースを使用するように設定できます。例::
|
||||
|
||||
/**
|
||||
* debug_kit コネクションは DebugKit のメタデータを格納します。
|
||||
*/
|
||||
'debug_kit' => [
|
||||
'className' => 'Cake\Database\Connection',
|
||||
'driver' => 'Cake\Database\Driver\Mysql',
|
||||
'persistent' => false,
|
||||
'host' => 'localhost',
|
||||
//'port' => 'nonstandard_port_number',
|
||||
'username' => 'dbusername', // Your DB username here
|
||||
'password' => 'dbpassword', // Your DB password here
|
||||
'database' => 'debug_kit',
|
||||
'encoding' => 'utf8',
|
||||
'timezone' => 'UTC',
|
||||
'cacheMetadata' => true,
|
||||
'quoteIdentifiers' => false,
|
||||
//'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'],
|
||||
],
|
||||
|
||||
**tmp/debug_kit.sqlite** ファイルは、いつでも削除することができます。
|
||||
DebugKit は、必要に応じて、それを再生成します。
|
||||
|
||||
ツールバーの使い方
|
||||
==================
|
||||
|
||||
DebugKit ツールバーは、いくつかのパネルで構成されています。これらのパネルは、
|
||||
DebugKit をインストールしてロードした後、ブラウザーの右下隅にある CakePHP
|
||||
アイコンをクリックすると表示されます。各パネルは、パネルクラスとビューエレメントで構成されています。
|
||||
一般的に、パネルは単一の種類の情報のコレクションの処理やログやリクエスト情報の表示を行います。
|
||||
ツールバーからパネルを表示したり、独自のカスタムパネルを追加することを選択できます。
|
||||
|
||||
各パネルはアプリケーションの様々な側面を見せてくれます。
|
||||
|
||||
* **Cache** リクエスト中のキャッシュの使用状況の確認とキャッシュのクリアー。
|
||||
* **Environment** PHP 及び CakePHP に関連する環境変数の表示。
|
||||
* **History** 以前のリクエストの一覧の表示と、以前のリクエストのツールバーデータの読み込みと表示。
|
||||
* **Include** タイプごとにグループ化されたインクルードファイルを表示。
|
||||
* **Log** このリクエスト中にログファイルに加えられたすべてのエントリーを表示。
|
||||
* **Packages** 現在のバージョンのパッケージの依存関係の一覧を表示し、
|
||||
古いパッケージをチェックすることができます。
|
||||
* **Mail** このリクエスト中の全てのメール送信を表示し、
|
||||
送信せずに開発中のメールのプレビューができます。
|
||||
* **Request** 現在のリクエスト、GET、POST、Cake パラメーター、現在のルート情報、クッキー情報の表示。
|
||||
* **Session** 現在のセッション情報の表示。
|
||||
* **Sql Logs** 各データベースコネクションの SQL ログの表示。
|
||||
* **Timer** リクエスト中に ``DebugKit\DebugTimer`` で設定されたすべてのタイマーと、
|
||||
``DebugKit\DebugMemory`` で収集されたメモリー使用状況の表示。
|
||||
* **Variables** コントローラーでセットされたビュー変数の表示。
|
||||
|
||||
履歴パネルを使用する
|
||||
====================
|
||||
|
||||
履歴パネルは DebugKit で最も勘違いされやすい機能の一つです。
|
||||
エラーやリダイレクトを含む以前のリクエストのツールバーのデータを表示することができます。
|
||||
|
||||
.. figure:: ../_static/history-panel.png
|
||||
:alt: Screenshot of the history panel in debug kit.
|
||||
|
||||
ご覧のようにパネルにはリクエストの一覧が含まれます。左側にドットがついているのがアクティブな
|
||||
リクエストです。どれかのリクエストをクリックするとそのリクエストのデータが読み込まれます。
|
||||
履歴データがロードされると代替のデータが読み込まれたことを示すようにパネルのタイトルが遷移します。
|
||||
|
||||
.. only:: html or epub
|
||||
|
||||
.. video:: ../_static/history-panel-use.mp4
|
||||
:alt: Video of history panel in action.
|
||||
|
||||
メールパネルを使用
|
||||
==================
|
||||
|
||||
メールパネルは、リクエストの間に送信された全てのメールを追跡することができます。
|
||||
|
||||
.. only:: html or epub
|
||||
|
||||
.. video:: ../_static/mail-panel.mp4
|
||||
:alt: Video of mail panel in action
|
||||
|
||||
メーラープレビューは、開発中のメールを簡単にプレビューすることができます。
|
||||
|
||||
.. only:: html or epub
|
||||
|
||||
.. video:: ../_static/mail-previewer.mp4
|
||||
:alt: Video of mail panel in action
|
||||
|
||||
プレビュークラスの作成
|
||||
------------------------
|
||||
|
||||
メールを送信する前にプレビューするには、受信者と mailer メソッドに必要なテンプレート変数を
|
||||
定義するプレビュークラスを作成する必要があります。 ::
|
||||
|
||||
// src/Mailer/MailPreview/WelcomePreview.php の中で
|
||||
namespace App\Mailer\Preview;
|
||||
|
||||
use DebugKit\Mailer\MailPreview;
|
||||
|
||||
class WelcomePreview extends MailPreview
|
||||
{
|
||||
public function welcome()
|
||||
{
|
||||
$mailer = $this->getMailer('Welcome');
|
||||
// メーラーのテンプレート変数受信者を設定します。
|
||||
|
||||
return $mailer;
|
||||
}
|
||||
}
|
||||
|
||||
MailPreview クラスは、 アプリケーションまたはプラグインの ``Mailer\Preview``
|
||||
名前空間に存在し、 ``Preview`` を使用する必要があります。
|
||||
|
||||
独自のパネルを開発する
|
||||
======================
|
||||
|
||||
アプリケーションのデバッグを補助するための DebugKit の独自のカスタムパネルを
|
||||
作成することができます。
|
||||
|
||||
パネルクラスを作成する
|
||||
----------------------
|
||||
|
||||
パネルクラスは単に **src/Panel** ディレクトリーに設置してください。ファイル名はクラス名と
|
||||
一致する必要があります。 つまり ``MyCustomPanel`` クラスは
|
||||
**src/Panel/MyCustomPanel.php** というファイル名であることを想定しています。 ::
|
||||
|
||||
namespace App\Panel;
|
||||
|
||||
use DebugKit\DebugPanel;
|
||||
|
||||
/**
|
||||
* My Custom Panel
|
||||
*/
|
||||
class MyCustomPanel extends DebugPanel
|
||||
{
|
||||
...
|
||||
}
|
||||
|
||||
カスタムパネルは ``DebugPanel`` クラスを拡張する必要があることに注意してください。
|
||||
|
||||
コールバック
|
||||
------------
|
||||
|
||||
デフォルトではパネルオブジェクトには、現在のリクエストをフックすることができる
|
||||
2つのコールバックがあります。パネルは ``Controller.initialize`` と
|
||||
``Controller.shutdown`` のイベントを取得します。もしパネルが追加のイベントを
|
||||
取得したい場合は、 ``implementedEvents()`` メソッドを使用し、
|
||||
パネルが必要とするすべてのイベントを定義できます。
|
||||
|
||||
どのようにパネルを構築するかについてのいくつかの例として、ビルトインのパネルを参照してください。
|
||||
|
||||
パネルの構成要素
|
||||
----------------
|
||||
|
||||
各パネルはパネルのコンテンツを描画するためのビューエレメントがあることを想定しています。
|
||||
エレメント名はアンダースコアー区切りのクラス名である必要があります。
|
||||
たとえば、 ``SessionPanel`` は **session_panel.ctp** という名前のエレメントを持ちます。
|
||||
また、SqllogPanelは **sqllog_panel.ctp** という名前のエレメントを持ちます。
|
||||
これらのエレメントは **src/Template/Element** ディレクトリーのルートに設置する必要があります。
|
||||
|
||||
カスタムのタイトルとエレメント
|
||||
------------------------------
|
||||
|
||||
パネルは慣例を元にそのタイトルとエレメント名を補足します。もしカスタムのタイトルやエレメント名を
|
||||
付けたい場合は、パネルの振る舞いをカスタムするメソッドを定義することができます。
|
||||
|
||||
- ``title()`` - ツールバー上に表示されるタイトルを設定します
|
||||
- ``elementName()`` - 与えられたパネルがどのエレメントを使用するかを設定します
|
||||
|
||||
パネルフックメソッド
|
||||
--------------------
|
||||
|
||||
また、パネルの動作や表示方法をカスタムするために以下のフックメソッドを実装することができます。
|
||||
|
||||
* ``shutdown(Event $event)`` このメソッドは通常はパネルのデータの収集と準備を行います。
|
||||
* ``summary()`` パネルが折りたたまれている時に表示されるサマリーデータの文字列を
|
||||
返すことができます。多くの場合、これは件数や短いサマリー情報です。
|
||||
* ``data()`` エレメントのコンテキストで使用されるパネルのデータを返します。
|
||||
このフックメソッドは ``shutdown()`` で収集されるデータを更に操作することができます。
|
||||
このメソッドはシリアライズ化可能なデータを **必ず** 返す必要があります。
|
||||
|
||||
他のプラグインのパネル
|
||||
----------------------
|
||||
|
||||
パネルはひとつの小さな違いを除き、`plugins <https://book.cakephp.org/3.0/ja/plugins.html>`_
|
||||
とほぼ同じ動作を提供します。レンダリング時にパネルのエレメントを配置できるように、
|
||||
``public $plugin`` にプラグインディレクトリーの名前を必ずセットする必要があります。 ::
|
||||
|
||||
namespace MyPlugin\Panel;
|
||||
|
||||
use DebugKit\DebugPanel;
|
||||
|
||||
class MyCustomPanel extends DebugPanel
|
||||
{
|
||||
public $plugin = 'MyPlugin';
|
||||
...
|
||||
}
|
||||
|
||||
プラグインやアプリケーションパネルを使用するには、アプリケーションの DebugKit の設定を
|
||||
更新します。 ::
|
||||
|
||||
// src/Application.php の bootstrap() メソッドの中に追加
|
||||
Configure::write('DebugKit.panels', ['App', 'MyPlugin.MyCustom']);
|
||||
$this->addPlugin('DebugKit', ['bootstrap' => true]);
|
||||
|
||||
上記は、すべてのデフォルトのパネルと同じように ``AppPanel`` と ``MyPlugin`` の
|
||||
``MyCustomPanel`` パネルを読みこみます。
|
||||
|
||||
ヘルパー関数
|
||||
================
|
||||
|
||||
* ``sql()`` ORM クエリーから SQL をダンプします。
|
||||
* ``sqld()`` ORM クエリーから SQL をダンプして終了します。
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
import sys, os
|
||||
|
||||
# Append the top level directory of the docs, so we can import from the config dir.
|
||||
sys.path.insert(0, os.path.abspath('..'))
|
||||
|
||||
# Pull in all the configuration options defined in the global config file..
|
||||
from config.all import *
|
||||
|
||||
language = 'pt'
|
||||
@@ -0,0 +1,5 @@
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:caption: CakePHP DebugKit
|
||||
|
||||
/index
|
||||
+216
@@ -0,0 +1,216 @@
|
||||
Debug Kit
|
||||
#########
|
||||
|
||||
DebugKit é um plugin suportado pelo time principal do CakePHP que oferece uma
|
||||
barra de ferramentas para auxiliar na depuração de aplicações do CakePHP.
|
||||
|
||||
Instalação
|
||||
==========
|
||||
|
||||
Por padrão o DebugKit é instalado com o esqueleto padrão da aplicação. Se
|
||||
você o removeu e gostaria de reinstalá-lo, você pode executar o seguinte comando
|
||||
a partir do diretório raiz da aplicação
|
||||
(onde o arquivo composer.json está localizado)::
|
||||
|
||||
php composer.phar require --dev cakephp/debug_kit "~3.0"
|
||||
|
||||
Então, você precisará habilitar o plugin ao executar o seguinte comando::
|
||||
|
||||
bin/cake plugin load DebugKit
|
||||
|
||||
Armazenamento do DebugKit
|
||||
=========================
|
||||
|
||||
Por padrão, o DebugKit usa um pequeno banco de dados SQLite no diretório
|
||||
``/tmp`` de sua aplicação para armazenar os dados referentes ao painel
|
||||
de informações. Se você quiser que o DebugKit armazene seus dados em outro
|
||||
lugar, é necessário configurar uma nova conexão com o nome ``debug_kit`` .
|
||||
|
||||
Configuração do banco de dados
|
||||
------------------------------
|
||||
|
||||
Como informado anteriormente, por padrão, o DebugKit armazenará os dados do
|
||||
painel em um banco de dados SQLite no diretório ``/tmp`` de sua aplicação. Se
|
||||
você não puder instalar a extensão pdo_sqlite do PHP, você pode configurar o
|
||||
DebugKit para usar um banco de dados diferente ao definir uma conexão
|
||||
``debug_kit`` em seu arquivo **config/app.php**. Por exemplo::
|
||||
|
||||
/**
|
||||
* A conexão debug_kit armazena meta-dados do DebugKit.
|
||||
*/
|
||||
'debug_kit' => [
|
||||
'className' => 'Cake\Database\Connection',
|
||||
'driver' => 'Cake\Database\Driver\Mysql',
|
||||
'persistent' => false,
|
||||
'host' => 'localhost',
|
||||
//'port' => 'nonstandard_port_number',
|
||||
'username' => 'dbusername', // Your DB username here
|
||||
'password' => 'dbpassword', // Your DB password here
|
||||
'database' => 'debug_kit',
|
||||
'encoding' => 'utf8',
|
||||
'timezone' => 'UTC',
|
||||
'cacheMetadata' => true,
|
||||
'quoteIdentifiers' => false,
|
||||
//'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'],
|
||||
],
|
||||
|
||||
Uso da barra de ferramentas
|
||||
===========================
|
||||
|
||||
A barra de ferramentas do DebugKit é composta por vários painéis, que são
|
||||
exibidos ao clicar no ícone do CakePHP no canto inferior direito da janela do
|
||||
seu navegador. Uma vez que a barra de ferramentas é aberta, você deverá ver uma
|
||||
série de botões. Cada um desses botões se expande em um painel de informações
|
||||
relacionadas.
|
||||
|
||||
Cada painel permite a você observar aspectos diferentes da sua aplicação:
|
||||
|
||||
* **Cache** Exibe o uso de cache durante uma solicitação e limpa caches.
|
||||
* **Environment** Exibe variáveis de ambiente relacionadas com PHP + CakePHP.
|
||||
* **History** Exibe uma lista de requisições anteriores, e permite que você
|
||||
carregue e veja dados da barra de ferramentas a partir de solicitações
|
||||
anteriores.
|
||||
* **Include** Exibe os arquivos inclusos divididos por grupo.
|
||||
* **Log** Exibe todas as entradas feitas nos arquivos de log este pedido.
|
||||
* **Request** Exibe informações sobre a requisição atual, GET, POST, informações
|
||||
sobre a rota atual do Cake e Cookies.
|
||||
* **Session** Exibe a informação atual da sessão.
|
||||
* **Sql Logs** Exibe logs SQL para cada conexão com o banco de dados.
|
||||
* **Timer** Exibe qualquer temporizador que fora definido durante a requisição
|
||||
com ``DebugKit\DebugTimer``, e memória utilizada coletada com
|
||||
``DebugKit\DebugMemory``.
|
||||
* **Variables** Exibe variáveis de View definidas em um Controller.
|
||||
|
||||
Tipicamente, um painel manipula a recolha e apresentação de um único tipo
|
||||
de informações como logs ou informações de requisições. Você pode optar por
|
||||
visualizar os painéis padrões da barra de ferramentas ou adicionar seus próprios
|
||||
painéis personalizados.
|
||||
|
||||
Usando o painel History
|
||||
=======================
|
||||
|
||||
O painel History é uma das características mais frequentemente confundidas do
|
||||
DebugKit. Ele oferece uma forma de visualizar os dados de requisições
|
||||
anteriores na barra de ferramentas, incluindo erros e redirecionamentos.
|
||||
|
||||
.. figure:: /_static/img/history-panel.png
|
||||
:alt: Screenshot do painel History no DebugKit.
|
||||
|
||||
Como você pode ver, o painel contém uma lista de requisições. Na esquerda você
|
||||
pode ver um ponto marcando a requisição ativa. Clicar em qualquer requisição vai
|
||||
carregar os dados referentes a mesma no painel. Quando os dados são carregados,
|
||||
os títulos do painel vão sofrer uma transição para indicar que informações
|
||||
alternativos foram carregados.
|
||||
|
||||
.. only:: html or epub
|
||||
|
||||
.. figure:: /_static/img/history-panel-use.gif
|
||||
:alt: Video do painel History em ação.
|
||||
|
||||
Desenvolvendo seus próprios painéis
|
||||
===================================
|
||||
|
||||
Você pode criar seus próprios painéis customizados do DebugKit para ajudar
|
||||
na depuração de suas aplicações.
|
||||
|
||||
Criando uma Panel Class
|
||||
-----------------------
|
||||
|
||||
Panel Classes precisam ser colocadas no diretório **src/Panel**. O
|
||||
nome do arquivo deve combinar com o nome da classe, então a classe
|
||||
``MyCustomPanel`` deveria remeter ao nome de arquivo
|
||||
**src/Panel/MyCustomPanel.php**::
|
||||
|
||||
namespace App\Panel;
|
||||
|
||||
use DebugKit\DebugPanel;
|
||||
|
||||
/**
|
||||
* My Custom Panel
|
||||
*/
|
||||
class MyCustomPanel extends DebugPanel
|
||||
{
|
||||
...
|
||||
}
|
||||
|
||||
Perceba que painéis customizados são necessários para extender a classe
|
||||
``DebugPanel``.
|
||||
|
||||
Callbacks
|
||||
---------
|
||||
|
||||
Por padrão objetos do painel possuem dois callbacks, permitindo-lhes acoplar-se
|
||||
na requisição atual. Painéis inscrevem-se aos eventos ``Controller.initialize``
|
||||
e ``Controller.shutdown``. Se o seu painel precisa inscrever-se a eventos
|
||||
adicionais, você pode usar o método ``implementedEvents`` para definir todos os
|
||||
eventos aos quais o seu painel possa precisar estar inscrito.
|
||||
|
||||
Você deveria estudar os painéis nativos para absorver alguns exemplos de como
|
||||
construir painéis.
|
||||
|
||||
Elementos do painel
|
||||
-------------------
|
||||
|
||||
Cada painel deve ter um elemento view que renderiza o conteúdo do mesmo.
|
||||
O nome do elemento deve ser sublinhado e flexionado a partir do nome da classe.
|
||||
Por exemplo ``SessionPanel`` deve possuir um elemento nomeado
|
||||
**session_panel.ctp**, e SqllogPanel deve possuir um elemento nomeado
|
||||
**sqllog_panel.ctp**. Estes elementos devem estar localizados na raiz do seu
|
||||
diretório **src/Template/Element**.
|
||||
|
||||
Títulos personalizados e Elementos
|
||||
----------------------------------
|
||||
|
||||
Os painéis devem relacionar o seu título e o nome do elemento por convenção. No
|
||||
entanto, se você precisa escolher um nome de elemento personalizado ou título,
|
||||
você pode definir métodos para customizar o comportamento do seu painel:
|
||||
|
||||
- ``title()`` - Configure o título que é exibido na barra de ferramentas.
|
||||
- ``elementName()`` - Configure qual elemento deve ser utilizada para um
|
||||
determinado painel.
|
||||
|
||||
Métodos de captura
|
||||
------------------
|
||||
|
||||
Você também pode implementar os seguintes métodos para customizar como o seu
|
||||
painel se comporta e se aparenta:
|
||||
|
||||
* ``shutdown(Event $event)`` Esse método coleta e prepara os dados para o
|
||||
painel. Os dados são geralmente armazenados em ``$this->_data``.
|
||||
* ``summary()`` Este método retorna uma *string* de dados resumidos para serem
|
||||
exibidos na *toolbar*, mesmo quando um painel está minimizado. Frequentemente,
|
||||
é um contador ou um pequeno resumo de informações.
|
||||
* ``data()`` Este método retorna os dados do painel que serão usados como
|
||||
contexto para o elemento. Você pode manipular os dados coletados no método
|
||||
``shutdown()``. Esse método **deve** retornar dados que podem ser
|
||||
serializados.
|
||||
|
||||
Painéis em outros plugins
|
||||
-------------------------
|
||||
|
||||
Painéis disponibilizados por `plugins
|
||||
<https://book.cakephp.org/3.0/pt/plugins.html>`_ funcionam quase que totalmente
|
||||
como outros plugins, com uma pequena diferença: Você deve definir ``public
|
||||
$plugin`` como o nome do diretório do plugin, com isso os elementos do painel
|
||||
poderão ser encontrados no momento de renderização::
|
||||
|
||||
namespace MyPlugin\Panel;
|
||||
|
||||
use DebugKit\DebugPanel;
|
||||
|
||||
class MyCustomPanel extends DebugPanel
|
||||
{
|
||||
public $plugin = 'MyPlugin';
|
||||
...
|
||||
}
|
||||
|
||||
Para usar um plugin ou painel da aplicação, atualize a configuração do DebugKit
|
||||
de sua aplicação para incluir o painel::
|
||||
|
||||
Configure::write(
|
||||
'DebugKit.panels',
|
||||
array_merge(Configure::read('DebugKit.panels'), ['MyCustomPanel'])
|
||||
);
|
||||
|
||||
O código acima deve carregar todos os painéis padrão tanto como os outros
|
||||
painéis customizados do ``MyPlugin``.
|
||||
Reference in new issue
Block a user