CC PHP - использование собственного класса

Jack

Client
Регистрация
30.03.2016
Сообщения
49
Благодарностей
0
Баллы
6
Вставил свой класс для обработки ini файлов:
Код:
<?php
use System;
use System\Data;
use System\Text;
use System\Linq;
use System\Drawing;
use System\Resources;
use System\ComponentModel;
use System\Collections\Generic;
use ZennoLab\CommandCenter;
use ZennoLab\InterfacesLibrary\ProjectModel;
use ZennoLab\InterfacesLibrary\ProjectModel\Enums;
use ZennoLab\Emulation;

class TIniFileEx {
    public $filename;
    public $arr;
    function __construct($file = false){
        if (!defined('_BR_'))
              define('_BR_',chr(13).chr(10));
        if ($file)
            $this->loadFromFile($file);
    }
    function initArray(){
        $this->arr = parse_ini_file($this->filename, true);
    }
    function loadFromFile($file){
        $result = true;
        $this->filename = $file;
        if (file_exists($file) && is_readable($file)){
            $this->initArray();
        }
        else
            $result = false;
        return $result;
    }
    function read($section, $key, $def = ''){
        if (isset($this->arr[$section][$key])){
            return $this->arr[$section][$key];
        } else
            return $def;
    }
    function write($section, $key, $value){
        if (is_bool($value))
            $value = $value ? 1 : 0;
        $this->arr[$section][$key] = $value;
    }
    function eraseSection($section){
        if (isset($this->arr[$section]))
            unset($this->arr[$section]);
    }
    function deleteKey($section, $key){
        if (isset($this->arr[$section][$key]))
            unset($this->arr[$section][$key]);
    }
    function readSections(&$array){
        $array = array_keys($this->arr);
        return $array;
    }
    function readKeys($section, &$array){
        if (isset($this->arr[$section])){
            $array = array_keys($this->arr[$section]);
            return $array;
        }
        return array();
    }
    function updateFile(){
        $result = '';
        foreach ($this->arr as $sname=>$section){
            $result .= '[' . $sname . ']' . _BR_;
            foreach ($section as $key=>$value){
                $result .= $key .'='.$value . _BR_;
            }
            $result .= _BR_;
        }
            file_put_contents($this->filename, $result);
            return true;
    }
}

/// <summary>
/// Класс для запуска выполнения скрипта
/// </summary>
[Export]
class Program implements ZennoLab\CommandCenter\IZennoCustomCode, ZennoLab\CommandCenter\IZennoCustomEndCode
{
    /// <summary>
    /// GoodEnd
    /// </summary>
    /// <param name="instance">Объект инстанса выделеный для данного скрипта</param>
    /// <param name="project">Объект проекта выделеный для данного скрипта</param>
    public function GoodEnd($instance, $project)
    {
        // TODO insert your code of GoodEnd here
    }
    /// <summary>
    /// BadEnd
    /// </summary>
    /// <param name="instance">Объект инстанса выделеный для данного скрипта</param>
    /// <param name="project">Объект проекта выделеный для данного скрипта</param>
    public function BadEnd($instance, $project)
    {
        // TODO insert your code of BadEnd here
    }
    /// <summary>
    /// Метод для запуска выполнения скрипта
    /// </summary>
    /// <param name="instance">Объект инстанса выделеный для данного скрипта</param>
    /// <param name="project">Объект проекта выделеный для данного скрипта</param>
    /// <returns>Код выполнения скрипта</returns>
    public function ExecuteCode($instance, $project)
    {       
        // Проверяем наличие config.ini
        if (file_exists('F:\RecursionProjects\projects_config.ini')) {
            $config = new TIniFileEx('F:\RecursionProjects\projects_config.ini');
        } else {
            return -1;
        }   
       
        $executionResult = 0;
       
        // Выполнить группу действий ProjectInitialiser
        $executionResult = ProjectManager::Execute($instance, $project, $config);
       
        // Выполнить группу действий LinkParser
        $executionResult = LinkParser::Execute($instance, $project, $config);
       
        return $executionResult;
    }
}
?>
При создании экземпляра класса получаю:
https://gyazo.com/e1741a392aee7316f5e6e02ddfca506f

Как быть?
 

Jack

Client
Регистрация
30.03.2016
Сообщения
49
Благодарностей
0
Баллы
6
Код выше из Program.php, соответсвенно
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113

Jack

Client
Регистрация
30.03.2016
Сообщения
49
Благодарностей
0
Баллы
6
В C# собственные классы использовать можно без таких проблем?
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
Ага) С C# Все проще)
 

Jack

Client
Регистрация
30.03.2016
Сообщения
49
Благодарностей
0
Баллы
6
Проблема решена, пишу для последователей.

Создаете "новый элемент", он же класс, который можно увидеть в обозревателе проекта. Структура класса:
Код:
<?php
use System;
use System\Data;
use System\Text;
use System\Linq;
use System\Drawing;
use System\Resources;
use System\ComponentModel;
use System\Collections\Generic;
use ZennoLab\CommandCenter;
use ZennoLab\InterfacesLibrary\ProjectModel;
use ZennoLab\InterfacesLibrary\ProjectModel\Enums;
use ZennoLab\Emulation;

[Export]
class NewClass
{
    /// <summary>
    /// Метод выполнения группы действий
    /// </summary>
    /// <param name="instance">Объект инстанса выделеный для данного скрипта</param>
    /// <param name="project">Объект проекта выделеный для данного скрипта</param>
    /// <returns>Код выполнения группы действий</returns>
    public static function Execute($instance, $project) {
        $project->SendInfoToLog('TestInfo', false);
       
        return 0;
    }
}
?>
Далее вызываем метод класса в любом месте кода строкой:
Код:
TranslateMethod::Execute($instance, $project);
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)