Skip to content

alexeyp0708/PhpDump

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Alpa\PhpDump - deprecated : A new application will be implemented

ОписаниС

  • Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ошибки Π² консоли.
  • Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² консоли.
  • Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ массивы ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² консоли.
  • Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ… ΠΈ классах рСкурсивно.
  • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π°Π½Π°Π»ΠΈΠ·Π° "ВяТСлых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²"
  • ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ ограничСния влоТСнности Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ… Π·Π° счСт ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠ΅Ρ‚Π΅Π»ΡŒ(замыкания ΠΏΠΎ ссылки).
  • МоТно Ρ†Π΅Π»Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎ ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ слСды (ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π΄Π΅Π±Π°Π³Π°). Они Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ, Ссли Ρ‚Π° ΠΈΠ»ΠΈ иная Ρ‚ΠΎΡ‡ΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Π°. Π’Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² случаях, Ссли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡƒΡŽ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ Π΄Π°ΠΌΠΏΠ° Π² цСлях ΠΎΡ‚ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΈΠ»ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

image
image
image

ВрСбования

PHP 7 Git + Composer

Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΈ установка

Π­Ρ‚Π°ΠΏΡ‹

  • Установка для всСх ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Ρ‡Π΅Ρ€Π΅Π· Composer глобально.
  • Установка для всСх ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· Composer локально.
  • Установка Ρ‡Π΅Ρ€Π΅Π· GIT
ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΊ установкС.

Π•ΡΡ‚ΡŒ скрипты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ повсСмСстно Π½Π° вашСй Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ станции.
Π’ PHP Ρ‚Π°ΠΊΡƒΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· настройки auto_prepend_file ΠΈ auto_append_file.
Для этого Π² Ρ„Π°ΠΉΠ»Π΅ php.ini Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ auto_prepend_file= dirictory/name_file.php
Для Apache ΠΌΠΎΠΆΠ½ΠΎ Π² Ρ„Π°ΠΉΠ»Π΅ .htaccess ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ строку php_value auto_prepend_file dirictory/name_file.php
Π’ Π΄Ρ€ΡƒΠ³ΠΈΡ… случаях, смотритС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ вашСго сСрвСра.

Для Ρ‚Π°ΠΊΠΈΡ… Ρ†Π΅Π»Π΅ΠΉ создадим Ρ„Π°ΠΉΠ» init_prepend_scripts.php Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π°Π²Ρ‚ΠΎΠ·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΎΠ² ΠΈ/ΠΈΠ»ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ скриптов.
Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ постоянно настройки, Π² случаях ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈΠ»ΠΈ измСнСния мСстополоТСния ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², прСдлагаСтся Π²Π½Π΅Π΄Ρ€ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды окруТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° мСстополоТСниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ которая ΡƒΠΊΠ°ΠΆΠ΅Ρ‚ Π½Π° Ρ„Π°ΠΉΠ» init_prepend_scripts.php ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ„Π°ΠΉΠ»Π°Ρ… настроСк php сСрвСра. cΠΌ Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… окруТСния

  1. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΈ установим ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ срСды PHP_AUTO_PREPEND_FILE=absolute_path/init_prepend_scripts.php.
    PHP_AUTO_PREPEND_FILE lΠΎΠ»ΠΆΠ½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒΡΡ Π΄ΠΎ запуска сСрвСра. Для Ρ‚Π°ΠΊΠΈΡ… Ρ†Π΅Π»Π΅ΠΉ PHP_AUTO_PREPEND_FILE Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡŒΡΠ²ΠΈΡ‚ΡŒ Π² ОБ.

  2. Установим настройки Π² php.ini auto_prepend_file=${PHP_AUTO_PREPEND_FILE} Если Π½Π΅Ρ‚ возмоТности ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ PHP_AUTO_PREPEND_FILE, Ρ‚ΠΎΠ³Π΄Π° просто ΠΏΡ€ΠΎΠΏΠΈΡˆΠΈΡ‚Π΅ auto_prepend_file=absolute_path/init_prepend_scripts.php, Π³Π΄Π΅ absolute_path - ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ Ρ„Π°ΠΉΠ»Π° init_prepend_scripts.php. МоТно настройку auto_prepend_file ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². Для Apache это дСлаСтся Ρ‡Π΅Ρ€Π΅Π· Ρ„Π°ΠΉΠ» .htaccess, Π³Π΄Π΅ ΠΏΡ€ΠΎΠΏΠΈΡˆΠ΅ΠΌ настройку php_value auto_prepend_file absolute_path/init_prepend_scripts.php .

  3. Π€ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌ Ρ„Π°ΠΉΠ» absolute_path/init_prepend_scripts.php

<?php 
//-- init Composer global.
	if(false!==($path=getenv('COMPOSER_HOME'))){
		$composer_home=$path;
	} else if(false!==($path=getenv('APPDATA'))){ // для windows
		$composer_home=$path.'/Composer';
	} else {
		// для *nix систСм
		if(false!==($path=getenv('XDG_CONFIG_HOME'))){
			$composer_home=$path.'/composer';
		} else if(false!==($path=getenv('HOME'))){
			$composer_home=$path.'/.composer';
		}
	}
	// ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ установлСны глобально. Ρ‡Π΅Ρ€Π΅Π· composer global require
	if(file_exists($composer_home.'/vendor/autoload.php')){
		include $composer_home.'/vendor/autoload.php';
	}
	
// -- end Init Composer Global
  1. ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚Π΅ сСрвСр.
Установка для всСх ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Ρ‡Π΅Ρ€Π΅Π· Composer глобально.
  1. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ зависимости Π΅Ρ‰Π΅ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π² packagist, прописываСм Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ $ composer global config repositories.Alpa\PhpDump git https://github.com/ALexeyP0708/PhpDump.git $ composer global config repositories.Alpa\EntityDetails git https://github.com/ALexeyP0708/EntityDetails.git

  2. ΠŸΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°Π΅ΠΌ PhpDump $ composer global require Alpa/PhpDump":"1.*

  3. Π”Π°Π»Π΅Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° $ composer global install Ссли ΠΊΠΎΠΌΠΏΠΎΠ·Π΅Ρ€ Π΅Ρ‰Π΅ Π½Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ глобально Или $ composer global update ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Или $ composer global dump-autoload обновляСт Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ Π°Π²Ρ‚ΠΎΠ·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ.

  4. ДописываСм Π² ΠΊΠΎΠ½Π΅Ρ† Ρ„Π°ΠΉΠ»Π° init_prepend_scripts.php ΠΊΠΎΠ΄:

	// ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ  Php Dump;
	\Alpa\PhpDump\Manager::includeFileInit();
Установка для всСх ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· Composer локально.

Π­Ρ‚ΠΎ способ установки, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ установлСн ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ всСх ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²

  1. Установка локально происходит ΠΏΠΎ Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ (ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ 1-4) ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π°, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±Π΅Π· Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ global
  2. УстанавливаСм ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ срСды PHP_DUMP_PATH=path/phpdump/extension Π³Π΄Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ являСтся ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° PhpDump. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ срСды ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈ Π² .htaccess SetEnv PHP_DUMP_PATH absolute/path/PhpDump, Ссли Π² настройках Apache для вашСго Π΄ΠΎΠΌΠ΅Π½Π° установлСн ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ AllowOverride Π² состояниС All Π’ΠΠ˜ΠœΠΠΠ˜Π•: ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ срСды ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΡƒΡŽ, Ссли Π²Ρ‹ осущСствили ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ сборку ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° локально ΠΈ Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ присутствуСт ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ PhpDump. Π’ΠΎΠ³Π΄Π° Π²Π°ΠΌ придСтся Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ упоминания PHP_DUMP_PATH Π½Π° имя вашСй ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ срСды Π² ΠΊΠΎΠ΄Π΅ описанном Π½ΠΈΠΆΠ΅.
  3. ДописываСм Π² ΠΊΠΎΠ½Π΅Ρ† Ρ„Π°ΠΉΠ»Π° init_prepend_scripts.php ΠΊΠΎΠ΄
// -- Init Php Dump	
	if(false===($path=getenv('PHP_DUMP_PATH'))){
		// эмулируСм Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ PHP_DUMP_PATH Π² случаС Ссли Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΠ°ΠΊ Π½Π° вашСм сСрвСрС ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ срСды.
		putenv('PHP_DUMP_PATH='.__DIR__.'/relative/patch/dirictories/PhpDump');// ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ достовСрный ΠΏΡƒΡ‚ΡŒ
	if(false!==($path=getenv('PHP_DUMP_PATH'))){
		include $path.'/vendor/autoload.php';
		\Alpa\PhpDump\Manager::includeFileInit();
	}
// -- End  Init Php Dump

Для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΌ сайтС, ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ дСйствий Π½Π΅ измСняСтся. НСобходимо Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ локально, послС Ρ‡Π΅Π³ΠΎ для php ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ настройки auto_prepend_file= dirictory/init_prepend_scripts.php ΠΈΠ»ΠΈ auto_prepend_file=${PHP_AUTO_PREPEND_FILE}, ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды PHP_AUTO_PREPEND_FILE ΠΈ PHP_DUMP_PATH, ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» init_prepend_scripts.php Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΠ²ΡƒΡŽΡ‰ΡƒΡŽ Π΄ΠΈΡ€ΠΈΠΊΡ‚ΠΎΡ€ΠΈΡŽ.

Установка Ρ‡Π΅Ρ€Π΅Π· GIT
  1. Команда для Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° $ git clone https://github.com/ALexeyP0708/PhpDump.git ПослС клонирования, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости.
  2. ЗапуститС ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ $ composer install
  3. Π˜ΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ 2,3 Π³Π»Π°Π²Ρ‹ Установка для всСх ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· Composer локально.

Установка PhpDumpConsole Chrome Extensions

Π’ Google Chrome ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π² Ρ€Π°Π·Π΄Π΅Π» Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° (Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΠΏΡ€Π°Π²ΠΎΠΌ ΡƒΠ³Π»Ρƒ), Π΄Π°Π»Π΅Π΅ Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ распакованноС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅
Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ [directory PhpDump]/ChromeExtension/PhpDumpConsole_v1.1.
Π’ ΠΏΠ°Π½Π΅Π»ΠΈ появится красный Π·Π½Π°Ρ‡ΠΎΠΊ Π² Π²ΠΈΠ΄Π΅ ΠΏΡ€ΠΈΡ†Π΅Π»Π° -ΡˆΠ΅ΡΡ‚Π΅Ρ€Π΅Π½ΠΊΠ° Π² ΠΊΡ€ΡƒΠ³Ρƒ. Если ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΡˆΠ΅ΡΡ‚Π΅Ρ€Π΅Π½ΠΊΠ° Π½Π΅ прСвращаСтся Π² синий Ρ†Π²Π΅Ρ‚, Ρ‚ΠΎ ΠΈΠ»ΠΈ сСрвСр Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ PhpDump ΠΈΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π½Π΅ ΠΏΡ€ΠΎΡˆΠ΅Π» Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° работоспособности.

ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с Ρ„Π°ΠΉΠ»ΠΎΠΌ [dirictory Php Dump]/tests/test_debugManager.php

К ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ Π³Π΄Π΅ установлСн PhpDump Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²Π΅Π± доступ ΠΈ свободная ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡ ΠΊ сцСнариям.
Допустим Π²Ρ‹ установили PhpDump Π² /sites/www/mysite/TestPhpDump Π° Π²Π΅Π± доступ ΠΊ сайту http://mysite/ Ρ‚ΠΎΠ³Π΄Π° для запуска сцСнария тСста http://mysite/TestPhpDump/tests/test_debugManager.php

Запустится страница с Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ошибками. Запустим консоль Google Chrome ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΡˆΠ΅ΡΡ‚Π΅Ρ€Π΅Π½ΠΊΡƒ Π² ΠΏΠ°Π½Π΅Π»ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° пСрСзагрузится, ΡˆΠ΅ΡΡ‚Π΅Ρ€Π΅Π½ΠΊΠ° прСвратится Π² синий Ρ†Π²Π΅Ρ‚. Вся информация Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ отобразится Π² консоли.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ

  1. БлуТСбная информация ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ ΠΈ сСрвСром обмСниваСтся Ρ‡Π΅Ρ€Π΅Π· Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ.
  2. ПослС ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Ρ‚Π΅Π»ΠΎ Π΄Π°ΠΌΠΏΠ° для Π²Ρ‹Π²ΠΎΠ΄Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π² консоли.
  3. ΠŸΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π΄Π°ΠΌΠΏΠ°, Π΄Π°Π½Π½Ρ‹Π΅ Π΄Π°ΠΌΠΏΠ° Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² json Ρ„Π°ΠΉΠ» ΠΈ послС, ΠΏΡ€ΠΈ запросС ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ, Π΄Π°Π½Π½Ρ‹Π΅ json Ρ„Π°ΠΉΠ»Π° ΠΎΡ‚Π΄Π°ΡŽΡ‚ΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ.
  4. Π”Π°ΠΌΠΏ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Π²ΠΊΠ»Π°Π΄ΠΎΠΊ.
  5. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° построСна Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π°ΠΌΠΏ Π΄Π°Π½Π½Ρ‹Ρ… формируСтся для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ запроса ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ. Π’Π΅ΠΌ самым Π΄Π°ΠΌΠΏ Π±ΡƒΠ΄Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ свой для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ запроса.
  6. ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π΄Π°ΠΌΠΏ Ajax запросов ΠΈ динамичСски построСнных Ρ‡Π΅Ρ€Π΅Π· PHP ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ Ρ„Π°ΠΉΠ»ΠΎΠ² (js,css,img....).
  7. ΠŸΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°ΠΌΠΏ Ρ‡Π΅Ρ€Π΅Π· Ρ„Π°ΠΉΠ».
  8. Если Php Dump установлСн, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ†Π΅Π»Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎ ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ слСды (ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ php dump). Они Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ, Ссли Ρ‚Π° ΠΈΠ»ΠΈ иная Ρ‚ΠΎΡ‡ΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Π°. Π‘ΠΌ Π½ΠΈΠΆΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· turn_on. Π’Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² случаях Ссли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡƒΡŽ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ Π΄Π°ΠΌΠΏΠ° Π² цСлях ΠΎΡ‚ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΈΠ»ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². Для ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½ вСрсии, встраиваСтся класс Π·Π°Π³Π»ΡƒΡˆΠΊΠ° для слСдов, ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ зачищаСтся ΠΎΡ‚ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹Ρ… слСдов.

ΠŸΠ΅Ρ€ΡΠΏΠ΅ΠΊΡ‚ΠΈΠ²Ρ‹:

  • ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΄Π°ΠΌΠΏΠ° Ρ‡Π΅Ρ€Π΅Π· web socket . Π’Π΅ΠΌ самым сСгмСнты Π΄Π°ΠΌΠΏΠ° Π±ΡƒΠ΄ΡƒΡ‚ сразу ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ, Π΄Π°ΠΆΠ΅ Ссли скрипт вошСл Π² Ρ†ΠΈΠΊΠ»ΠΈΡ‡Π½ΡƒΡŽ Π±Π΅ΡΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΡΡ‚ΡŒ
  • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ привязки Π²ΠΊΠ»Π°Π΄ΠΊΠΈ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ скрипта. Π­Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΊΠΎΠ³Π΄Π° скрипт выполняСтся Ρ‡Π΅Ρ€Π΅ CLI ΠΈΠ»ΠΈ Π·Π°ΠΏΡƒΡ‰Π΅Π½ Π΄Π΅ΠΌΠΎΠ½.
  • Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.
  • ΠŸΡ€ΠΈ цикличности, ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….
  • Π˜ΠΌΠΏΠΎΡ€Ρ‚ экспорт Π΄Π°ΠΌΠΏΠ°.

Для дальнСйшСй Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» настроСк.

Π€Π°ΠΉΠ» настроСк. "src/init_php_dump.php"

Π’ Ρ„Π°ΠΉΠ»Π΅ настроСк ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ PhpDump, ΠΈΠ»ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ запись Π΄Π°ΠΌΠΏΠ° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ бСктрСйс, ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ сохранСния Ρ„Π°ΠΉΠ»ΠΎΠ² Π΄Π°ΠΌΠΏΠ°.
Π’Π°ΠΊΠΆΠ΅ Π² Ρ„Π°ΠΉΠ»Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ свои Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈΠ»ΠΈ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ псСвдоним для Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ класса. Π’Π°ΠΊΠΆΠ΅ Π² Ρ„Π°ΠΉΠ»Π΅ настроСк ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ настройки Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Настройки бСзопасности.

PhpDump Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ рассчитан Π½Π° ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ, поэтому условия бСзопасности ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹.
Если Π²Ρ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ PhpDump ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ ΠΊ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ сайту Π½Π° просторС ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚, Ρ‚ΠΎ Π² Ρ„Π°ΠΉΠ»Π΅ src/init_php_dump.php ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ настройки для Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ:

$settings=[

    'hashkeys'=>[

     'HashKey'=>[ // любой ΠΊΠ»ΡŽΡ‡ Π² Π²ΠΈΠ΄Π΅ строки (Π»Π°Ρ‚ΠΈΠ½ΠΈΡ†Π°).Π‘ΡƒΠ΄Π΅Ρ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡Ρ‘ΠΌ

      'key'=>'HashKey', // Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΠ΅ΠΌ строку ΠΊΠ»ΡŽΡ‡Π°

      'greeting_server'=>'greeting_server', // ΠΊΠ»ΡŽΡ‡ Π² Π²ΠΈΠ΄Π΅ строки для Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° сторонС сСрвСра

      'greeting_client'=>'greeting_client' // ΠΊΠ»ΡŽΡ‡ для Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.  

     ]

]

];

На сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π² консоли, Π² Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅ΠΌ спискС 'Java Scripts Context' Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ PhpDumpConsole ΠΈ Π² консоли Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠΎΠ΄

dm.setHashKey({

 hashkey:'HashKey',

 greeting_server:'greeting_server',  

 greeting_client:'greeting_client'

 });  
//Π³Π΄Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ hashkey , greeting_server, greeting_client устанавливаСтС Ρ‚Π°ΠΊΠΈΠ΅ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ Π½Π° сСрвСрС.
dm.bindHashKeyDomain({hashkey:'HashKey',domain:'global'}); // ΠΈΠ»ΠΈ domain:'your_domain' 
//Ссли domain='global'  Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для всСх сайтов ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½Π΅ установлСна авторизация ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΠΊΠ»ΡŽΡ‡Ρƒ.  

ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ настройки Π΄Π°ΠΌΠΏΠ°

$dump_settings=[ 
	'turn_on'=>['all'=>true], 
	'unset_dump_after'=>true, 
	'debug_backtrace'=>false
];
$dump_fields=[
	'path'=>__DIR__.'/../temp', 
	//'user'=>'', // Can be changed by the client part (via the browser console)
	//'context'=>'',// Can be changed by the client part (via the browser console)
	//'group'=>'', //Can be changed by the client part (via the browser console)
	//'name'=>'', // only for server part
];

Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π΄Π°ΠΌΠΏΠ°, достаточно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ $dump_settings['turn_on']=false; Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΄Π°ΠΌΠΏ, Ρ‚ΠΎ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Π² настройках массив $dump_settings['turn_on']=[]; Π”Π°Π½Π½Ρ‹ΠΌ массивом ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚. Π’ массивС ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ сСгмСнты Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ для ΠΈΡ… Π²Ρ‹Π²ΠΎΠ΄Π° ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ΄ ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ. ΠŸΠ°Ρ€ΡΠΈΠ½Π³ ΠœΠ΅Ρ‚ΠΎΠΊ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄ пространство ΠΈΠΌΠ΅Π½. И Ссли Π²Ρ‹ Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΌΠ΅Ρ‚ΠΎΠΊ, Ρ‚ΠΎ достаточно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ пространство ΠΈΠΌΠ΅Π½ этой Π³Ρ€ΡƒΠΏΠΏΡ‹.
К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ "Producer\Product\Class" ΠΈ ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ "Producer\Product\Class2

 // ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ всС ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΊΡ€ΠΎΠΌΠ΅ ошибок ΠΈ ΠΌΠ΅Ρ‚ΠΎΠΊ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ "Producer\\Product\\Class"
 $dump_settings['turn_on']=['all'=>false,'Errors':true,'Producer\\Product\\Class'=>true]; 
 // ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ всС ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΊΡ€ΠΎΠΌΠ΅ ошибок ΠΈ ΠΌΠ΅Ρ‚ΠΎΠΊ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ Producer\\Product. Π”Π°Π½Π½Ρ‹Π΅ с ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ Producer\\Product\\Class ΠΈ Producer\\Product\\Class2  Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ 
 $dump_settings['turn_on']=['all'=>false,'Errors':true,'Producer\\Product'=>true]; 
 // ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π²Ρ‹Π²ΠΎΠ΄ ошибок с ΠΊΠΎΠ΄ΠΎΠΌ 1024 ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ с ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ Producer\\Product::method
  $dump_settings['turn_on']=['all'=>true,'Errors\\1024':false,'Producer\\Product'=>false];

Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π²ΠΎΠ΄ backtrace

	$dump_settings['debug_backtrace']= true;

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ сгСнСрированыС Ρ„Π°ΠΉΠ»Ρ‹ Π΄Π°ΠΌΠΏΠΎΠ², Ρ‚ΠΎ:

	$dump_settings['unset_dump_after']= false;

Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ сохранСниС Ρ„Π°ΠΉΠ»ΠΎΠ² Π΄Π°ΠΌΠΏΠ°:

	$dump_fields['path']='new dirictory';

Π€Π°ΠΉΠ»Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ Π½Π΅ΠΊΠΈΠΉ ΠΏΡƒΡ‚ΡŒ сохранСния ΠΈ строятся ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ:

user/context/timestamp_group_name.json

	//Ссли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π³Ρ€ΡƒΠΏΠΏΡƒ Ρ„Π°ΠΉΠ»ΠΎΠ² Π΄Π°ΠΌΠΏΠ° Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠ»ΠΈ сСссия ΠΈΠ»ΠΈ other_user. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ΡΡ сСрвСром.
	$dump_fields['user']='name';

	// Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π΅ΠΊΡƒΡŽ Π³Ρ€ΡƒΠΏΠΏΡƒ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Ρ€Π°ΠΌΠΊΠ°Ρ… контСкста (Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ ΠΈΠ»ΠΈ псСвданима). По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ.   НазначаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ.
	$dump_fields['context']='num_tab';

	// Ссли Ρ„Π°ΠΉΠ»Ρ‹ Π΄Π°ΠΌΠΏΠ° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. НапримСр для выполнСния ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… сцСнариСв. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ случайноС число. ΠœΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ.  сСрвСр пСрСопрСдСляСт.
	$dump_fields['group']='name_group';
	// ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ суфикс названия (имя) Ρ„Π°ΠΉΠ»Π°. ГСнСрируСтся динамичСски. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сСрвСр.  
	$dump_fields['name']='name';

ΠŸΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ настроСк для $dump_fields Π½Π° сСрвСрС, ΠΎΠ½ΠΈ Π½Π°Ρ‡Π½ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π½ΠΎΠ²Ρ‹Ρ… Π²ΠΊΠ»Π°Π΄ΠΎΠΊ.
ΠŸΡ€ΠΈ использовании PhpDump нСсколькими ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ Π² ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ other_user ΠΈ ΠΏΡ€ΠΈ совпадСнии контСкста "context"(Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ id Π²ΠΊΠ»Π°Π΄ΠΊΠΈ), Π΅ΡΡ‚ΡŒ шанс Ρ‡Ρ‚ΠΎ случайныС числа для 'group' ΠΈ 'name' пСрСсСкутся ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ формирования Ρ„Π°ΠΉΠ»ΠΎΠ² Π΄Π°ΠΌΠΏΠ° (созданиС Ρ„Π°ΠΉΠ»Π° ΠΏΠΎΠ΄ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈΠ»ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Ρ‡ΡƒΠΆΠΎΠ³ΠΎ Π΄Π°ΠΌΠΏΠ°).
Но Ρ‚Π°ΠΊΠΎΠΉ шанс Π½Π΅ Π²Π΅Π»ΠΈΠΊ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ PhpDump Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ нСбольшая Π³Ρ€ΡƒΠΏΠΏΠ° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² для ΠΎΠ΄Π½ΠΎΠ³ΠΎ сСрвСра.
Если всС Ρ‚Π°ΠΊΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ свСсти ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ $dump_fields['name']=uniqid().uniqid().uniqid(); ΠΈΠ»ΠΈ Π·Π°Π΄Π°ΠΉΡ‚Π΅ ΠΈΠ½ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ. НСкоторыС настройки ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ со стороны ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

Π’ Ρ„Π°ΠΉΠ»Π΅ настроСк, для класса Alpa\PhpDump\Manager ΡƒΠΊΠ°Π·Π°Π½ псвдоним \deb, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для выполнСния записи Π΄Π°Π½Π½Ρ‹Ρ… Π² Π΄Π°ΠΌΠΏ. Π’ Ρ„Π°ΠΉΠ»Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ свой псСвдо класс. МоТно Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ. Π—Π°Ρ‡Π΅ΠΌ псСвдо класс:

  • для удобства написания. Π£Π΄ΠΎΠ±Π½Π΅ΠΉ ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊ \deb::print('Hello'); Ρ‡Π΅ΠΌ Ρ‚Π°ΠΊ \Alpa\PhpDump\Manager::print('Hello');
  • Если Π²Ρ‹ Ρ†Π΅Π»Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ оставляСтС слСды (ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ php dump), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎ ТСланию Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ Π΄Π°ΠΌΠΏΠ° для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ (Ρ€Π°Π²Π½ΠΎΡΠΈΠ»ΡŒΠ½ΠΎ Π»ΠΎΠ³Π°ΠΌ), Ρ‚ΠΎ Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½ вСрсии ΠΌΠΎΠΆΠ½ΠΎ вмСсто ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ php dump, ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ класс Π·Π°Π³Π»ΡƒΡˆΠΊΡƒ, Π³Π΄Π΅ Π±ΡƒΠ΄Π΅Ρ‚ использован магичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ __call ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π·Π°Π³Π»ΡƒΡˆΠΊΠΈ. Для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΎΠ±Π΅Ρ€Ρ‚ΠΎΠΊ достаточно ΠΎΠ±ΡŒΡΠ²ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ пустыми.

БтатичСскиС ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса для использования Π² PHP сцСнарии:

	\deb::vdump($var,$label='')// - Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ var_dump 
	\deb::vexport($var,$label='');//- Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ var_export
	\deb::print($var,$label='');// - Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. (Π² Ρ‚ΠΎΠΌ числС массивы ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, рСкурсивно анализируя)
	\deb::dump($var,$label='');// - Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Если массив ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, рСкурсивно Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡ…. По ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΎΠ±ΡŒΠ΅ΠΊΡ‚Ρƒ прСдоставляСт Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ.
	\deb::infoClass($var,$label='');// информация ΠΎ классС
	\deb::error($errno = false, $errstr, $errfile = false, $errline = false, $errcontext = false)

Π Π°Π±ΠΎΡ‚Π° Π² Консоли Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°.

ΠŸΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ прилоТСния для Π²ΠΊΠ»Π°Π΄ΠΊΠΈ, страница сайта пСрСзагрузится. PhpDump ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚ Π² Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ состояниС. ΠŸΡ€ΠΈ этом ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹Π΅ настройки для Π²ΠΊΠ»Π°Π΄ΠΊΠΈ ΠΈ для сСрвСра. ΠŸΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ настройки со стороны сСрвСра ΡΠ²Π»ΡΡŽΡ‚ΡΡ динамичСскими (настройки сформированныС ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ ΠΈ сСрвСром) ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ сущСствования Π²ΠΊΠ»Π°Π΄ΠΊΠΈ ΠΈ Π½Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ Π΅Π΅ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ для Π½Π΅Π΅ PhpDump Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ покаТСтся Π½Π΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ, Π½ΠΎ для управлСния сСрвСром ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ консоль ΠΈ Π²Ρ‹Π·ΠΎΠ² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ API. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ это api Π² дСйствии, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² консоли ΠΈΠ· списка ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠΉ список. размСщаСтся Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ Π»Π΅Π²ΠΎΠΌ ΡƒΠ³Π»Ρƒ консоли ΠΈ отобраТаСтся ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ "top") Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ PhpDumpConsole.

API для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² консолС

	// dm - ΠΎΠ±ΡŒΠ΅ΠΊΡ‚ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄
	dm.renderStack();//Π²Ρ‹Π²ΠΎΠ΄ Π² консоль стСк Π΄Π°Π½Π½Ρ‹Ρ… Π΄Π°ΠΌΠΏΠ°  ΠΏΠΎ всСм запросам страницы
	dm.renderDump(); //Π’Ρ‹Π²ΠΎΠ΄ Π² консоль ΠΎΠ±ΡŒΠ΅ΠΊΡ‚ Π΄Π°ΠΌΠΏΠ°
	dm.renderSettings(callback=false); //ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ настройки для Π΄Π°Π½Π½ΠΎΠΉ страницы(ΠΏΠΎ url). callback function Ссли ΡƒΠΊΠ°Π·Π°Π½ Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ callback -ΠΎΠΌ.   
	var settings=[{
			url:'', // ΡƒΡ€Π» ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Ρ‹ настройки. ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ  window.location.href. 	  
			regexp:'', // рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ для Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… рСсурсов сайта. url  ΠΈ regexp Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² ΠΏΠ°Ρ€Π΅ см.  `url=url.trim()!=''?'^'+$url:''; new RegExp(url+regexp,'i');
			turn_on:{ // см PHP $dump_settings['turn_on']
				'all':false ,  
				'group2\\group1':true, 
				'group3':true,
				'namespace/name':true, 
			}, 
			debug_backtrace:false, см PHP $dump_settings['debug_backtrace']
		}];
	dm.setSettings(settings,save=false); // устанавливаСт настройки для сайта  ΠΈ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρƒ для Π½Π΅Π³ΠΎ.  save =true -настройки сохранятся, ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ постоянно.
	/*
		**Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅**: Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ настройки для сайта  ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Π²Π²Π΅Π΄Π΅Π½Ρ‹ Ρ€Π°Π½Π΅Π΅, Ρ‚ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ url ΠΈ regexp Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ сравнСния.
		Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС эти настройки Π±ΡƒΠ΄ΡƒΡ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΊΠ°ΠΊ Π½ΠΎΠ²Ρ‹Π΅.
		Π’Π°ΠΊΠΆΠ΅ Ссли нСсколько Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€Π°Π²ΠΈΠ» Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с url Ρ‚ΠΎ настройки Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒΡΡ рСкурсивно ΠΏΡ€ΠΈ вычислСнии настроСк сайта, Π°
		ΠΏΡ€ΠΈ совпадСнии свойств - Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ‹  послСдними настройками Π² стСкС настроСк. (ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ рСкурсивного объСдинСния массивов) 
	*/
	var settings =[{url:'url',regexp:'regexp',type:'link'}];
	dm.clearSettings(settings,save=false); //сбрасываСт настройки.
	// type ='link', сбрасываСт всС настройки, Ρ‡ΡŒΠΈ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ подходят ΠΊ url.
	// type!='link', сбрасываСт всС настройки Ρ‡ΡŒΠΈ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ сформированному Ρ€Π΅Π³ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ. Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ выраТСния см. setSettings();.
	// save =true сохранит сброс.
	dm.clearAllSettings(save=ture/false); // сбрасываСт всС настройки
	dm.saveStorageAllSettings(); // сохраняСт всС измСнСния , ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ΅Π΄ΡˆΠΈΡ… Π² настройках.
//Авторизация
	param={
		hashkey:'HashKey', // ΠΊΠ»ΡŽΡ‡ ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ авторизация. ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ Π΄ΠΎΠΌΠ΅Π½Ρƒ. 
		greeting_server:'greeting_server', // привСтствиС сСрвСра. ΠΏΠ°Ρ€ΠΎΠ»ΡŒ сСрвСра. Ρ‚Π΅ΠΌ самым сСрвСр авторизуСтся с ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ. 
		greeting_client:'greeting_client' // привСтствиС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.  для Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° с сСрвСром.
	}
	dm.setHashKey(param); // рСгистрируСм/измСняСм Ρ…Π°ΡˆΠΊΠ΅ΠΉ 
	dm.deleteHashKey({hashkey:'name'}); // удаляСт Ρ…Π°ΡˆΠΊΠ΅ΠΉ.
	dm.bindHashKeyDomain({hashkey:'HashKey',domain:'qwer.qw'});//привязываСт Ρ…Π°ΡˆΠΊΠ΅ΠΉ ΠΊ Π΄ΠΎΠΌΠ΅Π½Ρƒ.  Ρ‚Π΅ΠΌ самым ΠΏΠΎ этому Ρ…Π°ΡˆΠΊΠ΅ΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ с Π΄ΠΎΠΌΠ΅Π½ΠΎΠΌ. 
	//Ссли domain='global' Ρ…Π°ΡˆΠΊΠ΅ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ для сайтов ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½Π΅ установлСн Ρ…Π°ΡˆΠΊΠ΅ΠΉ.  
	dm.unbindHashKeyDomain({domain:'ggg',hashkey:'ggg'});// отвязываСт Ρ…Π°ΡˆΠΊΠ΅ΠΉ ΠΎΡ‚ Π΄ΠΎΠΌΠ΅Π½Π°...
	dm.getAuthHashKeys(callback=false); // Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Ρ…Π°ΡˆΠΊΠ΅ΠΈ 
	//Ссли  callback =function(data_return){} Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠ°Π»Π±Π΅ΠΊΠΎΠΌ. Π­Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΡ€ΠΎΠΉ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈ зачистки Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹Ρ… Ρ…Π°ΡˆΠΊΠ΅Π΅Π². 

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

E_ERROR: Allowed memory size of ******** bytes exhausted

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ Π΄Π°ΠΌΠΏΠ° содСрТит ΠΎΡ‡Π΅Π½ΡŒ большой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ для Π°Π½Π°Π»ΠΈΠ·Π°. Π’.ΠΊ ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ анализируСтся ΠΈ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅ΠΌΡƒ свойству создаСтся статистика. Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° кроСтся Π² json_encode, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ json строку выдСляСтся ΠΏΠ°ΠΌΡΡ‚ΡŒ, Π° Π½Π΅ пСрСдаСтся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² ΠΏΠΎΡ‚ΠΎΠΊ. РСшСниС - ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ объСм памяти Π² php. Над ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ Π±ΡŒΡŽΡ‚ΡΡ Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΡƒΠΌΡ‹. НО ΠΏΠΎΠΊΠ° всСх всС устраиваСт Ссли Π½Π΅ Π·Π°ΠΆΠΈΡ€Π°Ρ‚ΡŒΡΡ.

HTTP ERROR 500 - критичСская ошибка
Если сцСнарий ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‚ΠΈΠ» Apache (ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ сСрвСр) Ρ‚ΠΎ Π΄Π°ΠΌΠΏ Π½Π΅ сформируСтся. ΠŸΡ€ΠΈ запросС Π΄Π°ΠΌΠΏΠ°, PhpDump отдаст Π½Π΅ сформированный Π΄Π°ΠΌΠΏ. ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ Π½Π΅ смоТСт Π΅Π³ΠΎ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Ρ‚ΡŒ. Для этого придСтся Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΉ страницС прилоТСния Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ NETWORK запросы ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π΄Π°ΠΌΠΏΠ°. (Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ„Π°ΠΉΠ» распознавался json Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ€Π°ΠΌΠΈ, ΠΏΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠΌ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ, Π½Π°Π΄ΠΎ Π² ΠΊΠΎΠ½Ρ†Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΡƒΡŽ ΠΈ Ρ„ΠΈΠ³ΡƒΡ€Π½ΡƒΡŽ скобки -"]}" )

Если ΠΎΡ‚ сСрвСра ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ ΠΎΡ‚Π²Π΅Ρ‚ 500 ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Π΅ ошибки Π±Π΅Π· ΠΏΠΎΠ³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° (скрипт Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ PhpDumpConsole для ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½), Ρ‚ΠΎ Π² консоли соотвСтствСнно Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ выдаст. Π­Ρ‚ΠΎ связано с Ρ‚Π΅ΠΌ Ρ‡Ρ‚ΠΎ, послС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ страницы, загруТаСтся скрипт ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° прилоТСния ΠΈ обмСниваСтся Π΄Π°Π½Π½Ρ‹ΠΌΠΈ с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.
ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚ Π² консоли Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΉ страницы Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ PhpDumpConsole.
ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΎΡ‚Π²Π΅Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΌ.
Π‘ΠΌ Chrome Extensions фоновая страница прилоТСния.

Для ознакомлСния с обозначСниями свойств ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° см https://github.com/ALexeyP0708/EntityDetails

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published