我是一个很长时间的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++程序.除了一些基本的语法规则之外,它几乎完全是一种不同的语言.
任何帮助,将不胜感激.只是一个初学者试图成长:)
使用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)