2015-11-19 64 views
2

我是Shell腳本的新手。我正在編寫一個shell腳本來生成一個php類。我已經成功地從該腳本生成了一個類,但問題是我無法在該類中聲明php變量。 例如:從bash腳本生成PHP類

#!/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,也許從一個模板引擎的一點幫助你生成類?順便說一句:'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

太好了。有用。謝謝你。 –