当我在PHP中进行以下乘法时:
$ret = 1.0 * 0.000000001;
Run Code Online (Sandbox Code Playgroud)
我得到的结果是:1.0E-9
我想将此结果转换为正常的十进制表示法,我该怎么做?
sprintf('%f',$ret)
不起作用,它返回0.000000
.溢出?
在我的项目的管理面板中,我编写了更改要使用的数据库名称的功能.我在其中编写了新的数据库名称parameters.ini
,之后必须清理缓存以加载新的配置.
在不运行控制台命令的情况下清理缓存的最佳方法是什么?
或者是否有另一种最佳实践如何更改当前数据库.
我想将路线重定向到另一条路线:
/ foo/bar/123 schould重定向到/ bar/123; mode = test
我按以下方式配置了路由:
{ path: 'foo/bar/:id', redirectTo: '/bar/:id;mode=test' },
当它重定向时,;mode=test
目标URL中缺少该部分.我怎么能包括这个?
我即将将一些代码迁移到PSR-2标准.在我的代码中,我有if多个行的语句作为表达式:
if ( $field->getBlockMode() == FieldInterface::BLOCK_MODE_HIDEVAR &&
!isset($this->enabledBlocks[$field->getBlock()])
) {
}
Run Code Online (Sandbox Code Playgroud)
编写此类表达式的最佳做法是什么?
我打算转到Zend Studio 9,并将试用版本与我的版本8并行安装.现在我加载了我的旧Workspace,我的Zend Framework项目对php一无所知.
例如,如果我尝试扩展异常,它会说:"无法从接口异常扩展".或者'file_get_contents'结束于:'调用未定义的函数.
所以似乎没有加载PHP定义,但我怎么能改变它?在Zend Studio 8中,它仍然有效.
我正在通过资产压缩我的javascripts(在一个目录中所有脚本的树枝块),这在prod模式下工作正常.现在我想为我的prod env使用调试模式,所以我在配置中切换资产到调试,清除缓存并在调试时转储资产.
这适用于一些javascripts但不是全部.Symfony为它们添加了一个后缀编号,它在网站(javascript标签)上与实际文件相反(一个).有时清除缓存并再次转储解决了问题,但这次没有.
例如:它转储:/web/js/main_part_3_jquery-ui_6.js但是使用:/web/js/main_part_3_jquery-ui_1.js
那我怎么解决这个问题呢?
编辑:清除缓存后,对网站的第一个请求中不显示wron后缀.
我喜欢在提供以下端点的反向代理后面运行 Symfony 5 应用程序:
代理配置基本上是这样的:
ProxyPass /marketsy/ http://internal.service1/
Run Code Online (Sandbox Code Playgroud)
在反向代理连接到的服务器上,我使用以下 apache 规则为我的 Symfony 应用程序提供服务:
<VirtualHost *:80>
ServerName internal.service1
DocumentRoot /webroot/service1/public
<FilesMatch \.php$>
SetHandler proxy:unix:/run/php/php7.2-fpm-ui.sock|fcgi://localhost
SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1
SetEnv HTTP_X_FORWARDED_PROTO "https"
</FilesMatch>
<Directory /webroot/service1/public>
AllowOverride None
Require all granted
FallbackResource /index.php
</Directory>
<Directory /webroot/service1/public/bundles>
FallbackResource disabled
</Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
应用程序本身是可重新访问的,但 Symfony 无法处理“service1”路径前缀。
例如,它尝试访问https://my.domain/_wdt/8e3926而不是https://my.domain/service1/_wdt/8e3926下的探查器,并且除了根路由之外,所有路由都不起作用:
例如:当我尝试访问https://my.domain/service1/my/page 时,我将被重定向到https://my.domain/my/page
现在我的问题是,当生成 urls 时,如何配置 Symfony 以了解“service1”路径前缀。
如何在模板中创建当前链接?
我想创建一个语言切换器,它应该链接到varios语言中的当前页面,因此所有参数应该与语言环境相同.
我按照以下方式配置我的NGINX for Zend(PHP 5.3 with fpm):
server {
root /home/page/public/;
index index.php index.html index.htm;
server_name localhost;
location / {
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想处理额外的get params,例如:http://web.site/index?par = 1
与我的本地开发系统(Apache)一样,它可以正常工作但不在NGINX下,它没有提供获取参数.
安妮的建议?
编辑:
现在我使用以下配置似乎有效,但我对它不满意,因为每个人都建议"尽可能使用try_files".
location / {
if (!-e $request_filename) {
rewrite /(.*)$ /index.php?q=$1 last;
break;
}
}
Run Code Online (Sandbox Code Playgroud)