通过 yii 框架使用来自单独 .cpp 文件的函数

Posted

技术标签:

【中文标题】通过 yii 框架使用来自单独 .cpp 文件的函数【英文标题】:Use functions from separate .cpp file by yii framework 【发布时间】:2014-06-04 04:34:42 【问题描述】:

我的客户给了我一个用于 yii 项目的 c++ 库。 C++ 库在 src 文件夹中有 main.cpp,它具有一定的功能。我想在我的 yii 框架中使用这些功能。 谁能告诉我该怎么做?

【问题讨论】:

为什么你认为它甚至是可能的? (不创建将 C++ 库函数公开到 php 中的自定义扩展) 我不知道它是否可能,因为我是 yii 的新手。我阅读了自定义扩展,但不知道如何创建它们。 【参考方案1】:

这是可能的;你需要一个 RPC(Remote Procedure Call) 框架来调用跨平台过程/函数

有一个名为thrift 的 PHP -> C++ 框架由 Apache Foundation 开发,它最初是由 Facebook 编写的,用于执行此类调用。

Thrift is a software framework for scalable cross-language services development. 
It combines a software stack with a code generation engine to build services 
that work efficiently and seamlessly between C++, Java, Python, PHP, Ruby, 
Erlang, Perl, Haskell, C#, Cocoa, Smalltalk, and OCaml and Delphi and 
other languages.

RPC 是一种相当先进的编程范式,您需要能够很好地理解这两种语言。它需要一些配置和设置

或者,您可以使用 C++ 库的编译版本,并通过系统 shell 调用仅使用公开的 API。在这种情况下调试会更容易,但是这可能会也可能不会,这取决于您的库的结构方式以及是否有稳定的公开 API 等

【讨论】:

为此我们需要 Thrift 服务器?

以上是关于通过 yii 框架使用来自单独 .cpp 文件的函数的主要内容,如果未能解决你的问题,请参考以下文章

YII框架一个请求的生命周期

Yii1.1框架关于日志的配置的简单使用

YII框架的类自动加载机制

Yii 微框架

通过 Yii 2 更新时 ActiveForm 中的文件输入问题

Yii2 利用controllerMap自定义控制器类