我有一个运行商业软件的生产服务器,它利用了已弃用的功能.我们已经在php.ini中禁用了错误输出display_errors = Off- 所以用户没有看到这些错误.但是,我们仍然记录PHP错误 - log_errors = On- 以便追踪问题.
问题:PHP似乎忽略了error_reporting它最终传递给错误日志的指令.无论输入什么值组合,文件记录都会像我设置的那样进行E_ALL.因此,我的错误日志因弃用通知而膨胀.
在php.ini中设置了默认时区值,因此与时区相关的问题无关紧要.
软件包的升级尚不可用,因此请不要"仅修复已弃用的代码".我正在寻找防止PHP将弃用的错误转储到日志中而不完全禁用文件日志记录的方法.
服务器细节:
我正在尝试使用GPG(目前为v 1.4.10)来执行对称加密/解密过程的一些自定义软件.我当前的加密命令如下所示:
gpg --batch --no-tty --no-use-agent --symmetric --cipher-algo AES256 --passphrase "foobar" /path/to/file_to_be_encrypted
Run Code Online (Sandbox Code Playgroud)
如果没有该--no-use-agent选项,我会收到臭名昭着的错误消息
gpg-agent在此会话中不可用
我担心转移到gpg2,因为根据文档,gpg-agent总是需要的,而且--no-use-agent只是一个虚拟选项.我的gpg调用通过守护进程在后台发生,所以这是一个非代理方案(加上它是对称的,我根本不需要代理).
这个详细程度的文档很少,所以我正在寻找用户体验.gpg2是否更紧密地合并了代理,因此我不必担心它的可用性?
我试图覆盖Devise方法set_flash_message.设计文档介绍了如何覆盖各个子模块的控制器.
但是,此特定方法位于所有模块DeviseController的父类中.
文档(包括wiki和inline)都没有说明如何实现这一点,所以我不确定如何最好地继续.我认为最好的方法是简单地重新打开类并根据需要修改方法,然后我将文件放入/lib该效果中.然而,似乎在Devise之前加载,导致错误喷出.
NameError in Devise::RegistrationsController#new
undefined local variable or method `require_no_authentication' for #<Devise::RegistrationsController>
Run Code Online (Sandbox Code Playgroud)
复杂的父级定义DeviseController也可能具有净负面影响:
class DeviseController < Devise.parent_controller.constantize
Run Code Online (Sandbox Code Playgroud)
思考?
我正在使用带有Rails 4的Bootstrap 3,我想创建一个自定义的FormBuilder来处理Bootstrap的一些独特的HTML语法.具体来说,我需要一个自定义帮助器,它将form-group在表单字段周围创建div包装器,因为Bootstrap将错误状态应用于此包装器,而不是字段本身 ......
<div class="form-group has-error">
<label class="col-md-3 control-label" for="user_email">Email</label>
<div class='col-md-9'>
<input class="form-control required-input" id="user_email" name="user[email]" placeholder="peter@example.com" type="email" value="someone@example.com" />
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
注意has-error外部div中的额外类...
无论如何,我写了那个助手,它很棒!
def form_group(method, options={})
class_def = 'form-group'
class_def << ' has-error' unless @object.errors[method].blank?
class_def << " #{options[:class]}" if options[:class].present?
options[:class] = class_def
@template.content_tag(:div, options) { yield }
end
# Here's a HAML sample...
= f.form_group :email do
= f.label :email, nil, class: 'col-md-3 control-label'
.col-md-9
= f.email_field :email, class: 'form-control …Run Code Online (Sandbox Code Playgroud) ruby forms ruby-on-rails ruby-on-rails-4 twitter-bootstrap-3
我有两个使用 Devise 的模型。一切都在适当的范围内并且工作正常。
现在我想为每个模型设置不同的配置值。例如,在一个模型中,我想设置allow_unconfirmed_access_for几天,而在另一个模型中,我不想允许任何此类未经确认的访问。
根据 Devise 在顶部的文档,这是可能的config/initializers/devise.rb。
# Use this hook to configure devise mailer, warden hooks and so forth.
# Many of these configuration options can be set straight in your model.
Run Code Online (Sandbox Code Playgroud)
与初始值设定项相反,在模型中设置变量所需的语法是什么?我目前在我的模型中有这个......
# Model Foo
Devise.setup do |config|
config.allow_unconfirmed_access_for = 2.days
end
# Model Bar
Devise.setup do |config|
config.allow_unconfirmed_access_for = 0.days
end
Run Code Online (Sandbox Code Playgroud)
它似乎不起作用......
我正在使用Sphinx进行Web搜索,并在构建索引时收到以下错误消息:
警告:sort_hits:merge_block_size = 76 kb太低,增加mem_limit可能会提高性能
问题是我找不到有关此设置配置位置的任何文档.我有点精通Sphinx设置,所以我只需要知道设置的配置.
我有一个PHPUnit引导程序文件,它创建一个用于DB相关单元测试的测试DB,并在测试完成后注册一个shutdown函数来销毁DB.每次运行的新数据库!
问题:当测试失败时,我想保留数据库以进行调试.目前,我必须手动禁用我的register_shutdown_function()呼叫,然后重新运行测试.
如果我可以访问PHPUnit的运行的最终成功/失败状态,我可以基于PHPUnit引导程序文件中的开关动态触发数据库销毁过程.
为了触发正确的结果时,即输出PHPUnit的某处存储这些信息OKVS FAILURES!.但是,根据我发现的情况,此信息不会暴露给用户级引导程序文件.有没有做过这样的事情?
如果你想探索,这是从命令行运行PHPUnit时出现的PHPUnit的堆栈跟踪...
PHP 1. {main}() /usr/bin/phpunit:0
PHP 2. PHPUnit_TextUI_Command::main() /usr/bin/phpunit:46
PHP 3. PHPUnit_TextUI_Command->run() /usr/share/php/PHPUnit/TextUI/Command.php:130
PHP 4. PHPUnit_TextUI_Command->handleArguments() /usr/share/php/PHPUnit/TextUI/Command.php:139
PHP 5. PHPUnit_TextUI_Command->handleBootstrap() /usr/share/php/PHPUnit/TextUI/Command.php:620
PHP 6. PHPUnit_Util_Fileloader::checkAndLoad() /usr/share/php/PHPUnit/TextUI/Command.php:867
PHP 7. PHPUnit_Util_Fileloader::load() /usr/share/php/PHPUnit/Util/Fileloader.php:79
PHP 8. include_once() /usr/share/php/PHPUnit/Util/Fileloader.php:95
PHP 9. [YOUR PHPUNIT BOOTSTRAP RUNS HERE]
Run Code Online (Sandbox Code Playgroud) 我有几个相关但又不同的 AR 模型,其中包含表示同一条数据的属性。当我为这些属性设置翻译时,我目前将它们设置为...
en:
activerecord:
attributes:
model_a:
assigned_date: "Assigned to worker"
model_b:
assigned_date: "Assigned to worker"
[ ... ]
Run Code Online (Sandbox Code Playgroud)
有没有办法以某种通配符方式定义一次这种翻译?
我认为最有意义的方法...
en:
activerecord:
attributes:
assigned_date: "Assigned to worker"
model_a:
[ model-specific translations here ]
Run Code Online (Sandbox Code Playgroud)
不起作用,因为 AR 显然正在寻找下层的模型名称 attributes
devise ×2
php ×2
ruby ×2
activerecord ×1
error-log ×1
forms ×1
gnupg ×1
indexing ×1
phpunit ×1
rails-i18n ×1
sphinx ×1
unit-testing ×1
yaml ×1