我正在寻找用于php的模板系统,我开始相信纯PHP代码似乎是我想要使用的解决方案.
我是唯一的开发人员,所以没有设计师需要一个神经紧张的竞技场工作.像smarty这样的模板引擎似乎遭受了"内部平台效应".如果我坚持使用良好实践(预先计算的值,仅使用foreach),我认为这将有效.
我的目标是为每个页面共享的html字符串提供单个源.我的想法是,通过include访问的单独的php文件是实现这一目标的好方法.
但是,我担心这可能会给网站带来安全隐患 - 我现在想不出任何具体内容,但是有人可以猜出模板的名称并直接请求它,也许会暴露他们需要的东西'看.(我想我可以检查它本身是否是请求.)我有预感这可能是坏事,所以我不想继续这样做,创造我担心会发生的事情,然后扔掉那个工作.
如果单独的文件不是最好的主意,我还应该使用什么来基本上存储整个网站的字符串?包含中的字符串常量,我可以在sprintf()中使用?一个从页面特定的html部分的参数返回html字符串的函数?
我在为两个交互类组织我的错误消息时遇到了一些麻烦.一个对象的状态是'error-ish',出现问题,或意外发生,但情况仍然可以挽救.我不想使用异常,1.因为它们只有一个字符串用于消息,而且2.因为我想在错误之后访问该对象.至少,我想使用它的一些get()方法在异常后构造一个有用的错误消息!
最终我有两条想要传达的信息:一个是我自己作为编码员,一个出错了.该字符串将包含文件,行,函数/方法,参数和结果的技术详细信息.显然,我不想向用户显示这个,所以我想向用户显示另一个错误消息字符串("找不到那个电子邮件地址"的东西).
因此我想到了构建一个错误消息数组,它可以使用来自异常的错误代码或状态代码作为各种消息的密钥.(虽然如果我这样做,我在哪里存储消息数组?)另一个选择可能是创建一个错误状态对象.
是否有类似"错误模式"的东西,类似于设计模式?
我对以下bash行感到困惑,由其他人写的:
return -1 || exit -1
Run Code Online (Sandbox Code Playgroud)
这是什么意思?我理解||构造意味着如果第一部分(在这种情况下return -1)失败(即返回非零代码),则执行第二部分(exit -1).同样奇怪的是,这个语句不是任何函数的一部分,而是在脚本的主体中.
我感谢有人向我解释这一点.
我想在php中使用数组映射中的empty().我收到的错误是它不是一个有效的回调.
$ cat test.php
<?
$arrays = array(
'arrEmpty' => array(
'','',''
),
);
foreach ( $arrays as $key => $array ) {
echo $key . "\n";
echo array_reduce( $array, "empty" );
var_dump( array_map("empty", $array) );
echo "\n\n";
}
Run Code Online (Sandbox Code Playgroud)
$ php test.php
arrEmpty
Warning: array_reduce(): The second argument, 'empty', should be a valid callback in /var/www/authentication_class/test.php on line 12
Warning: array_map(): The first argument, 'empty', should be either NULL or a valid callback in /var/www/authentication_class/test.php on line 13
NULL
Run Code Online (Sandbox Code Playgroud)
这不应该工作吗? …
我想做一个SELECT DISTINCT guid, ...,但我不想guid出现在记录集中.我该怎么做呢?
有没有办法在git中显示每个分支的最新提交?
我在git中有一个代码库,我已经设置了一段时间.它有几个分支用于不同的功能.我需要进入并更新/解决一些代码然而我选择将它们命名为太一般,现在我无法分辨我最后一个工作,甚至哪个具有我的功能.
理想情况下,我希望在每个分支中看到最后一次提交,以便概述我上次遗留的内容.有命令这样做吗?我只需要看看我上次工作的地方.我想避免切换到每个分支并查看其日志.
我正在为我的Linux主目录创建一个git存储库.除了我白名单的文件/目录之外,我想忽略大多数事情.我有这个:
# Ignore everything
*
# But not these files...
!.gitignore
!*/scripts/*
# the above line doesn't work, so this is a test:
!./scripts/*
Run Code Online (Sandbox Code Playgroud)
但它忽略了我添加到scripts/子目录中的文件.我一直在添加东西-f,这是次优的.
这个问题的答案,Git不会取消忽略目录,对我不起作用.
Git版本2.1.4.
我正在为我的Laravel 5.1应用程序编写一个控制台命令.在开发过程中,我在某个地方遇到了错误.当工匠报告错误时,它不会给我行号或文件; 我刚刚在红色背景中突出显示的shell中出现错误:
[ErrorException]
Undefined variable: answerer
Run Code Online (Sandbox Code Playgroud)
如何让工匠向我显示有关错误发生位置的更多信息,特别是行号和文件?
我正在使用laravel 5.1。在debian bash shell中。我创建了一个名为Survey:complete的自定义控制台命令。我已经使用了一段时间,现在我想为要生成的调查数量添加一个可选参数。
但是,我已按照文档进行操作,但无法成功添加参数。我同样更改了签名:
protected $signature = 'survey:complete {--number=}';
Run Code Online (Sandbox Code Playgroud)
并试图引用该论点
public function handle() {
for( $i = 0; $i < $this->argument('number'); $i++ ) {
Run Code Online (Sandbox Code Playgroud)
但是我得到这个错误:
$> php artisan survey:complete --number=1
[InvalidArgumentException]
The "number" argument does not exist.
Run Code Online (Sandbox Code Playgroud)
我print_r()的参数数组,我得到这个:
$ php artisan survey:complete --number=1
Array(
[command] => survey:complete
)
[InvalidArgumentException]
The "number" argument does not exist.
Run Code Online (Sandbox Code Playgroud)
如何将参数添加到命令中?
当我尝试从命令行php打印$ _SERVER变量时,它认为没有设置$ _SERVER.
$ php -r "print_r($_SERVER);"
Warning: print_r() expects at least 1 parameter, 0 given in Command line code on line 1
Run Code Online (Sandbox Code Playgroud)
但是,当它在文件中时,从命令行运行它会设置它
$ cat test.php
<?
print_r($_SERVER);
$ php test.php
Array
(
[TERM] => xterm
[SHELL] => /bin/bash
[SSH_CLIENT] => 192.168.1.101 49319 22
[SSH_TTY] => /dev/pts/0
...
Run Code Online (Sandbox Code Playgroud)
为什么?