nbasnet / php-codewriter
此包的最新版本(0.1.0)没有可用的许可证信息。
辅助类,用于生成写入文件的代码
0.1.0
2017-02-10 07:41 UTC
Requires (Dev)
- phpunit/phpunit: 5.5.*
This package is not auto-updated.
Last update: 2024-09-28 19:31:20 UTC
README
######使用不同组件生成写入文件的代码
在调用 writeComponent()
方法之前,需要通过 setSettings()
[从 BaseComponent 类继承] 将 CodeWriterSettings
实例传递给最高组件。如果在使用设置前调用 writeComponent()
,则抛出异常 SettingsNotSet
。
CodeWriterSettings::create(ISyntaxGrammar::PHP, $indent = 0)
1. 变量组件
$variable = VariableComponent::create("var")->setValue("Is Name", "string")->writeComponent(); OUTPUT: $var = 'Is Name';
常量
$constant = VariableComponent::create("TEST")->setValue("VALUE 1")->makeConstant()->writeComponent(); OUTPUT: const TEST = 'VALUE 1';
2. 数组组件
$array = ArrayComponent::create("what_is_this", TRUE) ->setValue([ "string" => "is game", "number" => 2, "bool" => FALSE, ]) ->writeComponent(); OUTPUT: $what_is_this = [ 'string' => 'is game', 'number' => 2, 'bool' => false, ];
3. 函数组件
$function = FunctionComponent::create("myFunction") ->setAccessIdentifier(BaseComponent::ACCESS_PUBLIC) ->setParameters([ArrayComponent::create("my_array"), $variable]) ->appendComponent($array) ->appendComponent($variable) ->writeComponent(); OUTPUT: /** * @param array $my_array * @param string $val */ public function myFunction(array $my_array, $val = 'Is Name') { $what_is_this = [ 'string' => 'is game', 'number' => 2, 'bool' => false, ]; $nischal = 'Is Name'; }
4. 类组件
$class = ClassComponent::create('TestController') ->setExtends("Controller") ->appendComponent($variable) ->appendComponent($constant) ->appendBlankLine() ->appendComponent($array) ->appendBlankLine() ->appendComponent($function) ->writeComponent(); OUTPUT: /** * Class TestController */ class TestController extends Controller { $var = 'Is Name'; const TEST = 'VALUE 1'; $what_is_this = [ 'string' => 'is game', 'number' => 2, 'bool' => false, ]; /** * @param array $my_array * @param string $val */ public function myFunction(array $my_array, $val = 'Is Name') { $what_is_this = [ 'string' => 'is game', 'number' => 2, 'bool' => false, ]; $nischal = 'Is Name'; } }