小编syn*_*aqx的帖子

为什么php扩展开发与c ++开发有很大不同?

我是一个很长时间的PHP开发人员,我开始在语言中遇到一些限制.所以,说到这一点,我认为我的开发周期的下一步将是转向C++,并构建一些扩展!

当我通过一些标准的"Hello World"教程时,一切似乎都很有意义.我建立了一个相当不错的tic-tac-toe应用程序,所以我认为是时候开始潜入PECL并看看事情是如何运作的.然而,我发现了什么,让我感到震惊.

任何人都可以解释为什么这样的目的和推理:

PHP_FUNCTION(helloWorld)
{
    RETURN_STRING("Hello World");
}
Run Code Online (Sandbox Code Playgroud)

并不是这样的:

string helloWorld()
{
    return "Hello World"
}

PHP_REGISTER_METHOD("helloWorld");
Run Code Online (Sandbox Code Playgroud)

我并不是假装我比创造这种语言的人更了解,而且我不是想挑起任何麻烦.看起来(至少从初学者的角度来看),创建PHP扩展并不像编写C++程序.除了一些基本的语法规则之外,它几乎完全是一种不同的语言.

任何帮助,将不胜感激.只是一个初学者试图成长:)

php c++ pecl

4
推荐指数
1
解决办法
216
查看次数

为特定上下文构建 Heroku docker 镜像

使用heroku.yml开发者预览版时(https://devcenter.heroku.com/articles/build-docker-images-heroku-yml)。目前是否有任何方法可以指定 docker 构建上下文以及 dockerfile?

我想模拟的命令是:

docker build -f cmd/api/Dockerfile .
Run Code Online (Sandbox Code Playgroud)

注意:.我在这里提供了构建上下文的路径。

目前,我能够成功运行以下命令:

build:
  docker:
    web: cmd/api/Dockerfile
Run Code Online (Sandbox Code Playgroud)

或者,使用更明确的版本:

build:
  docker:
    web:
      dockerfile: cmd/api/Dockerfile
Run Code Online (Sandbox Code Playgroud)

基于从多阶段构建中定位阶段的能力,我的假设是我也能够以与构建字段context相同的方式提供:docker-compose

build:
  docker:
    web:
      dockerfile: cmd/api/Dockerfile
      context: .
Run Code Online (Sandbox Code Playgroud)

但是,这会从 Heroku 返回以下错误响应:

remote: Building source:
remote: === Fetching app code
remote:
remote: =!= There were problems parsing your heroku.yml. We've detected the following issues:
remote:
remote: build.docker.web.context in body is a forbidden property
remote: Verifying deploy...
remote:
remote: …
Run Code Online (Sandbox Code Playgroud)

heroku docker

4
推荐指数
1
解决办法
1856
查看次数

标签 统计

c++ ×1

docker ×1

heroku ×1

pecl ×1

php ×1