How to Properly Read Colon Tags (<p:id>) in google_merchant.xml in PHP
How to read xml with tags that have a colon <p:id>, like in Google Merchant upload. Using registerXPathNamespace or referencing the tag directly.
xhprof is a tool that allows you to collect information both on the local machine and in production.
The choice fell on xhprof, since with certain additions, you can visually monitor the work of classes and build graphs.
1. Install on Ubuntu 14.04 // I won't change to a new one =)
The regular command did NOT fit, I don’t have this in the repositories (apt-get install xhprof), so I had to build it on my knee.
sudo apt-get install php-pear php5.6-dev php5.6-mcrypt
sudo php5enmod mcrypt
sudo pecl install xhprof-beta
Installation is carried out through pecl, and above are the necessary extensions for php and the mcrypt connection. Installation packages depend on the version of Linux and on the version of php.
2. For your version of php, set the definition in mods-available:
sudo nano /etc/php/5.6/mods-available/xhprof.ini
add lines to the file
extension=xhprof.so
If everything went right, then you can connect the xhprof module (for your version of php).
sudo php5enmod xhprof
sudo service apache2 restart
3. Checking the installed package :
php -i | grep xhprof

4. Getting Started :
After a successful installation and witchcraft, this design stopped throwing errors in the code.
<?php
// Initialize xhprof
xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);
foreach ([1,2,3] as $v) {
echo $v;
}
// Stop xhprof after program execution
$xhprof_data = xhprof_disable();
XHPROF_FLAGS_CPU - CPU time analysis
XHPROF_FLAGS_MEMORY - memory analysis
The usage is very simple, the code you need for debugging should be placed between xhprof_enable() and xhprof_disable(). $xhprof_data will contain all the information. But it is difficult for human understanding.
5. For more convenient processing of this information :
There is a ready-made interface for submitting shot information in human form. Download here . Or here . Or terminal:
cd /var/www; wget http://pecl.php.net/get/xhprof-0.9.4.tgz gzip -d xhprof-0.9.4.tgz tar -xvf xhprof-0.9.4.tar
You should unpack the contents of the archive into a directory that will be available as a domain. For example, on the local machine it is /var/www/xhprof-0.9.4
5.1. We start a local address (it will be xhprof.loc on apache):
sudo nano /etc/apache2/sites-available/xhprof.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName xhprof.loc
ServerAlias www.xhprof.loc
DocumentRoot /var/www/xhprof-0.9.4/xhprof_html
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/xhprof-0.9.4/xhprof_html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
sudo nano /etc/hosts
127.0.0.1 www.xhprof.loc
127.0.0.1 xhprof.loc
sudo service apache2 restart
As it is already clear, the working folder of this engine is xhprof_html . The front end looks like this:
5.2. Usage in code :
For use, after xhprof_disable(), add lines defining the place where to dump the spent logs.
<?php
// Initialize xhprof
xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);
foreach ([1 ,2,3] as $v) {
echo $v;
}
// Stop xhprof after program execution
$xhprof_data = xhprof_disable();
// Disable data with id " "
// Note that the path where we unpacked everything
include_once "/var/www/xhprof-0.9.4/xhprof_lib/utils/xhprof_lib.php";
include_once " /var/www/xhprof-0.9.4/xhprof_lib/utils/xhprof_runs.php";
$xhprof_runs = new XHProfRuns_Default();
$run_id = $xhprof_runs->save_run($xhprof_data, " product");

Gives a lot of information on all running classes:

6. Graphic report :
Also, xhprof allows you to generate a graphical report, which makes it clear what is knocking and where. This requires the installation of graphviz .
sudo apt-get install graphviz

Used sources:
How to read xml with tags that have a colon <p:id>, like in Google Merchant upload. Using registerXPathNamespace or referencing the tag directly.
Parsing JWT HS256 encryption, decrypting JWT HS256, comparing sha256 signatures for information integrity.
Let's look at fixing the disappearance of spaces before variables in the old version of Twig on php 7.4 without updating the version.
Consider the possibility of quickly creating a CSV file with automatic file download. Consider the formation, separators and header for the ability to download the file.
Latest templates from ImageCMS 4.12, authorization is required to download.