2015-11-19 2 views
2

Я новичок в скрипте Shell. Я пишу сценарий оболочки для генерации php-класса. Я успешно сгенерировал класс из этого скрипта, но проблема в том, что я не могу объявить переменные php в этом классе. Например:Сгенерировать PHP-класс из сценария bash

#!/bin/bash 

# Make root class 
echo "Adding Root class..." 
cat > Example.php << EOF 
<?php 
require_once (dirname(__FILE__)) . '/../CmlmAPICore.php'; 

class $1 extends PHPUnit_Framework_TestCase { 

    public $coreAPI; 
    public $globalPath; 
    public $path; 
    protected function setUp() { 
     $this->coreAPI = new CmlmAPICore(); 
     $this->globalPath = $GLOBALS['DATA_FOLDER']; 
} 
} 

Эти переменные не показаны в классе генерируемой. Все остальное хорошо видно. Сгенерированного класс:

<?php 
require_once (dirname(__FILE__)) . '/../CmlmAPICore.php'; 
class Audios extends PHPUnit_Framework_TestCase { 

    public ; 
    public ; 
    public ; 

    protected function setUp() { 
     ->coreAPI = new CmlmAPICore(); 
     ->globalPath = ['DATA_FOLDER']; 
} 
} 

=> $ 1 является параметром я прохожу в качестве имени класса, когда я запустить скрипт.

Я думаю, что это не означает, что в этом знаке «$». Есть ли способ сделать это?

+0

Почему вы не генерировать класс, используя PHP, возможно, с небольшой помощью шаблона двигателя? BTW: 'dirname (__ FILE __)' такое же, как '__DIR__'. –

+0

Да. Я также реализовал этот способ, используя скелеты в php. Точка: мне нужно добавить тестовые примеры в этом классе после чтения некоторых файлов. Что не представляется возможным с этим. –

+0

Что вы имеете в виду «не представляется возможным»? Например, вы можете использовать 'file_put_contents()' для добавления к существующему файлу. –

ответ

1

добавить «\» перед «$»

public \$coreAPI; 
public \$globalPath; 
public \$path; 
protected function setUp() { 
    \$this->coreAPI = new CmlmAPICore(); 
    \$this->globalPath = \$GLOBALS['DATA_FOLDER']; 
+0

Отлично. Оно работает. Спасибо. –

Смежные вопросы