Skip to content
Se# edited this page Nov 18, 2013 · 8 revisions

В ТР предусмотрен "компилятор", предназначенный для того, чтобы собирать такой ТР, какой нужен именно вам.

Как его использовать

Используется так:

require_once "path/to/Manager.php";

TestPoint_Manager::compile("Имя_Будущего_Класса", "Путь/до/конфига/onload.json");

В конфиге должна быть секция traits, содержащая имена трейтов, которые должны быть включены в класс. Если трейт использует ещё какие-то трейты, то их также можно указать - в этом случае секция трейта представляет собой набор из двух секций: name - здесь указывается имя родительского трейта, traits - здесь, аналогично базовой секции. Поддерживается вложенность равная максимальной вложенности json'a.

Например:

    "traits":
    [
        "TestPoint",
        {
            "name":"Config",

            "traits":
            [
                "Log",
                "Mode",
                "PHPUnit",
                "Store",
                "System",
                "Talk",
                "Test"
            ]
        },
        "File",
        {
            "name": "Log_Db_Mysql",
            "class": ["Mysql"]
        },
        "Test",
        {
            "name": "PHPUnit",
            "traits" :
            [
                "Analyse"
            ]
        },
        {
            "name": "Talk",
            "traits": ["Console"]
        }
    ]

А также секция путей:

"path" :
 {
    "trait": "базовый/путь/до/трейтов",
    "class": "базовый/путь/до/классов"
 }

Результат

Имя_Будущего_Класса.php :

<?php

require_once '/modules/TestPoint.php';
require_once '/modules/Config/Log.php';
require_once '/modules/Config/Mode.php';
require_once '/modules/Config/PHPUnit.php';
require_once '/modules/Config/Store.php';
require_once '/modules/Config/System.php';
require_once '/modules/Config/Talk.php';
require_once '/modules/Config/Test.php';
require_once '/modules/Config.php';
require_once '/modules/File.php';
require_once '/modules/lib/Mysql.php';
require_once '/modules/Log_Db_Mysql.php';
require_once '/modules/Test.php';
require_once '/modules/PHPUnit/Analyse.php';
require_once '/modules/PHPUnit.php';
require_once '/modules/Talk/Console.php';
require_once '/modules/Talk.php';

class Имя_Будущего_Класса
{
	use TestPoint, 
	Config_Log, 
	Config_Mode, 
	Config_PHPUnit, 
	Config_Store, 
	Config_System, 
	Config_Talk, 
	Config_Test, 
	Config, 
	File, 
	Log_Db_Mysql, 
	Test, 
	PHPUnit_Analyse, 
	PHPUnit, 
	Talk_Console, 
	Talk;
}

Далее, используем как в инструкции к TestPoint: https://github.com/Sett/testpoint/blob/master/README.md

Clone this wiki locally