Create and download CSV in PHP
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.
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
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.
Consider options for popular options for storing goods in a shopping cart in an online store. Let's outline the pros and cons of such storage. Consider options for long-term storage of the basket.
Creating a key for imageCMS 4.9-4.12.1 Pro and Pre. You must be logged in to receive it.
When running the script from the console, there is no DOCUMENT_ROOT in $_SERVER. Let's try to get around this in our own ways, catch the file directory.
Let's analyze the possibility of combining conditions in a query by groups in Propel. Consider an example of filtering by fields using ->condition() and ->combine().
Faced the problem of authorization 1s on the site. For some reason, the server did not accept the PHP_AUTH_USER and PHP_AUTH_PW parameters from it. Let's take a closer look at the solution and bypassing these parameters in $_SERVER .
The purpose of the article was to join (join) a table not declared in the schema (schema.xml) in propel2. Apparently a rare case or simply not enough documentation for this Propel ORM.