aa-ahmed-aa / dorm
这是一个用于编译和运行c和cpp文件的编译器包,这个包设计用来可以以后添加任何其他的编译器。
v1.4
2020-02-16 00:32 UTC
Requires
- php: >=7.1
Requires (Dev)
- phpunit/phpunit: ^6.5
This package is auto-updated.
Last update: 2024-09-20 19:30:07 UTC
README
这是一个运行和编译你的c和c++文件的包,将编译器添加到配置文件中,你就可以开始使用了 💥 。
运行测试用例和覆盖率
- 测试用例
composer run-script test
。 - 代码覆盖率
composer run-script coverage
。
🍯 安装
你可以使用composer require aa-ahmed-aa/dorm
来安装这个包
🔨 配置
首先,你需要安装编译器并在src/Core/Config.php
中配置它们的路径
C++
- 你可以在这里找到MinGW编译器
- 下载编译器文件后,将
MinGW
文件夹复制到你的C://
驱动器
Java
- 安装jdk并在你的环境变量中配置路径,你可以在这里找到jdk
Python
🔦 使用
首先,你需要在这个路径中设置setCompilationPath
,这个包将会在这个路径创建代码文件并编译和运行你的代码
现在让我们编译和运行一些真实的代码
require ('vendor/autoload.php'); use Ahmedkhd\Dorm\Dorm; $obj = new Executor('cpp'); //set compilation path $obj->setCompilationPath( __DIR__ ); echo $obj->getCompilationPath();
现在让我们编译和运行一些真实的代码
C++
这里我们编译和运行c++代码并打印结果
$cpp_code = <<<'EOT' #include<iostream> using namespace std; int main() { cout<<"hello, c plus plus"; return 0; } EOT; $comp = $obj->compile($cpp_code); echo "Compilation : " . ( ! is_array($comp) ? "Success" : "Fail" ) . "\n"; echo "Running is : " . ( ! is_array($comp) ? $obj->run() : "Fail" ) . "\n";
Java
//java $java_code = <<<'EOT' public class Main { public static void main(String[] args) { // Prints "Hello, World" to the terminal window. System.out.println("Hello, Java"); } } EOT; $obj = new Executor('java'); $comp = $obj->compile($java_code); echo "Compilation : " . ( ! is_array($comp) ? "Success" : "Fail" ) . "\n"; echo "Running is : " . ( ! is_array($comp) ? $obj->run() : "Fail" ) . "\n";
Python
$python_code = <<<'EOT' print "Hello, Python3.4" EOT; $obj = new Executor('python2'); $comp = $obj->compile( $python_code); echo "Running : " . implode( $comp ) . "\n";
🔌 添加你的编译器
你可以查看这篇博客文章获取更多信息。
这个包设计用来处理项目中任何其他编译器的编译/运行。
$compilers = [ "__COMPILER_NAME__"=>[ "path" => "__COMPILER_PATH__", "file_extension" =>'__CODE_FILE_EXTENSION_', "compile_func" => __NAME_FOR_YOUR_COMPILER_FUNCTION__, "run_func" => __NAME_FOR_YOUR_RUN_FUNCTION__ ] ];
步骤
- 添加你配置中使用的自定义密钥,以便以后在你的编译和运行函数中使用它,请参阅
src/Core/Config.php
。 - 在
src/Strategy/
文件夹中添加你的新StrategyTrait
,包括你的运行和编译函数,你可以看到像JavaTrait
和CAndCPPStrategy
这样的例子,然后在src/Core/Core.php
类中添加你的StrategyTrait
的使用 - 测试并确认你的编译器在那里。
许可
MIT许可(MIT)。请参阅许可文件获取更多信息。