我有一组shared_ptr,我想将remove_copy_if与谓词的自定义函数对象一起使用.我不知道"最好"的方式.现在,我有这个工作:
class CellInCol : public std::unary_function<const std::shared_ptr<Cell>,
bool>
{
public:
CellInCol( size_t col ) : _col( col ) {}
bool operator() ( const std::shared_ptr<Cell> &a ) const
{
return ( a->GetX() == _col );
}
private:
size_t _col;
};
typedef std::set<std::shared_ptr<Cell>, CellSorter> Container;
Container _grid;
// initialization omitted...
Puzzle::Container Puzzle::GetCol( size_t c )
{
Cell::Validate( c, 1, 9 );
Container col;
std::remove_copy_if( _grid.begin(), _grid.end(),
std::inserter( col, col.begin() ),
std::not1( CellInCol( c ) ) );
return col;
}
Run Code Online (Sandbox Code Playgroud)
我决定对shared_ptr执行const引用,因为该对象不会保留指针,这似乎比shared_ptr的额外副本更有效.
看起来对对象进行const引用似乎更好,但是我无法编译它.我把它改成了这个,但没有运气:
class …Run Code Online (Sandbox Code Playgroud) 我想设置Symfony2向我发送critical错误的电子邮件,但只是日志error级错误.以下设置会这样做吗?
monolog:
handlers:
main:
type: fingers_crossed
action_level: error
handler: grouped
grouped:
type: group
members: [filelog, mail]
# log all errors to file
filelog:
type: fingers_crossed
action_level: error
handler: nested_stream
nested_stream:
type: stream
path: "%kernel.logs_dir%/%kernel.environment%.log"
level: debug
# send me an email when we have a critical error
mail:
type: fingers_crossed
action_level: critical
handler: buffered
buffered:
type: buffer
handler: swift
swift:
type: swift_mailer
from_email: %mailer_sender%
to_email: %error_email%
subject: "[FeedStream Error]"
level: debug
Run Code Online (Sandbox Code Playgroud)
我看到:http://symfony.com/doc/current/cookbook/logging/monolog_email.html但它根本没有处理 …
让我先说这个; 我知道存在类似的问题,但它们已经存在了几年,ZF正在快速变化.我想要一个更近期的例子.
已经注意到很多关于Zend Framework的文档缺乏.我已经阅读了很多并用它来启动一些应用程序,但我发现很难理解如何正确地执行操作.我最大的问题是各种组件属于哪里,应该在哪里实例化,等等.
我试图遵循MVC最佳实践,使用瘦控制器,胖模型.我也在尝试使用最新的MVC堆栈,包括Zend_Application和推荐的Bootstrap类.
我想看一个使用框架最佳实践的示例站点,它可以演示以下组件(理想情况):
我知道我不需要在框架中使用所有东西,但我想尝试使用任何可能符合我需求的东西,我想了解更多相关信息.
那么你知道一个使用Zend MVC以及部分或全部这些组件的好例子吗?并且遵循了许多最佳实践?理想情况下,它使用至少1.10,但任何1.8或更高的内容就足够了.
我一直在尝试在Windows上设置Symfony2,以便我可以用更少的资产.
我已经为Windows安装了node.js(0.6.8).然后我跑了npm install less --global,发现少了C:\Users\Matt\AppData\Roaming\npm\node_modules
至于我的Symfony设置,我有主分支Assetic(由于我在1.0.2中读到的一个错误),但标准v1.0.1的AsseticBundle
经过一些工作,我能够通过以下方式获得一个示例文件: http://localhost/app_dev.php/css/compiled-main_part_1_boilerplate_1.css
然后我切换了一个.less文件@imports其他.less文件(在同一个子目录中).每当我尝试在我的本地服务器上访问该页面时(使用此较少的配置),它就会挂起,我可以看到命令进程和node.exe进程都在运行.
该命令正在尝试在node.js中运行一个脚本,该脚本存在于我的临时目录中.我可以在命令提示符下通过node.js运行该文件,但我无法使用Symfony/Assetic加载它.
无论如何在Windows上使用node.js,less和assetic?
这是我的相关配置文件部分:
# Assetic Configuration
assetic:
debug: %kernel.debug%
use_controller: false
bundles: [FeedStreamMainBundle]
# java: /usr/bin/java
filters:
cssrewrite: ~
less:
node: %assetic_node%
node_paths: [%assetic_less_path%]
yui_js:
jar: "%kernel.root_dir%/Resources/java/yuicompressor.jar"
yui_css:
jar: %kernel.root_dir%/java/yuicompressor-2.4.2.jar
# closure:
# jar: %kernel.root_dir%/java/compiler.jar
Run Code Online (Sandbox Code Playgroud)
dev config覆盖:
assetic:
use_controller: true
Run Code Online (Sandbox Code Playgroud)
在parameters.ini中:
assetic_node="C:\\Program Files (x86)\\nodejs\\node"
assetic_less_path="C:\\Users\\Matt\\AppData\\Roaming\\npm\\node_modules"
Run Code Online (Sandbox Code Playgroud) 我有两个列表,我将其分为两列.我想在小屏幕上做到这一点,项目成为一列,但我想交替项目.
<div>
<ul class="left">
<li>Item A</li>
<li>Item B</li>
<li>Item C</li>
<li>Item D</li>
</ul>
<ul class="right">
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
所以结果应该在小屏幕上看起来像这样.
Item A
Item 1
Item B
Item 2
Item C
Item 3
Item D
Item 4
Run Code Online (Sandbox Code Playgroud)
这是我的首发jsfiddle.我应该将一个列表li width设置为50%?我想看看这是否可行,同时保持HTML标记的方式.
我正在尝试让xdebug为PHP工作,Netbeans连接到Vagrant配置的VM(如果重要,请使用PuPHPet进行设置)
我的VM上有这些php.ini设置:
[XDEBUG]
xdebug.remote_connect_back=1
xdebug.default_enable=1
xdebug.remote_autostart=0
xdebug.max_nesting_level=256
xdebug.remote_enable=1
xdebug.remote_log=/tmp/php5-xdebug.log
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.idekey=netbeans-xdebug
Run Code Online (Sandbox Code Playgroud)
Netbeans的路径映射正确,并设置为本地网站运行.它正确启动带有GET变量的浏览器以开始调试.我的Windows防火墙允许netbeans,我添加了一个规则,允许从我的VM IP到我的本地IP(192.168.56.x地址,所以它是正确的子网)的所有内容.
从我的VM我可以ping我的主机操作系统.但是在xdebug日志中,我只看到:
Log opened at 2014-08-23 17:43:28
I: Checking remote connect back address.
I: Remote address found, connecting to 192.168.56.1:9000.
E: Time-out connecting to client. :-(
Log closed at 2014-08-23 17:43:28
Run Code Online (Sandbox Code Playgroud)
在我的主机操作系统上,我尝试了netstat并验证了Netbeans正在侦听端口9000.我在Virtualbox中删除了9000上的端口转发,因为我读过我不需要它(最初我有它但是Netbeans抱怨了一些东西其他人正在听9000).
我已经意识到php-fpm也使用端口9000,所以我尝试了9001(在ini中使用php-fpm重启,在IDE中,也验证了IDE正在监听9001).相同的结果:
I: Checking remote connect back address.
I: Remote address found, connecting to 192.168.56.1:9001.
E: Time-out connecting to client. :-(
Log closed at 2014-08-23 18:11:59
Run Code Online (Sandbox Code Playgroud)
所以现在我已经阅读了所有内容,而且我被困在这里.有任何想法吗?
我有一个std :: shared_ptr的容器.我想使用std :: equal来比较两个容器.A类有operator == defined.我希望等于比较每个元素是否等效使用其运算符==,而不是在shared_ptr中定义的元素.
我是否需要使函数或函数对象传递给相等的?或者是否有更简单的内置内容(如<functional>中定义的内容)?
我有一个同时具有名称(字符串)和文件(也是表示文件名的字符串)的实体.这是"Icon"实体.我有另一个名为"Category"的实体,它有一个名字(字符串)和一个Icon(OneToMany)的关系.我希望表单允许用户选择类别的图标.
所以我可以在表格中显示它:
$builder->add('icon', 'entity', array(
'class' => 'CroltsMainBundle:Icon',
'expanded' => true,
'multiple' => false
));
Run Code Online (Sandbox Code Playgroud)
但我真正想要的是在每个单选按钮的枝条中显示这样的东西:
<div>
<label for="something"><img src="/icons/{{icon.file }}" />{{icon.name}}</label>
<input type="radio" name="something" value="{{ icon.id }}" />
</div>
Run Code Online (Sandbox Code Playgroud)
有没有一种很好的方法可以用Symfony形式制作这种类型的无线电形式?就像我想要的定制类型一样?我真的没有用自定义类型做太多,知道这有多大可能.
我正在尝试创建一个自定义选民来检查实体对特定操作的访问权限.所以这个逻辑很好.但是,如果用户是该实体的"所有者",或者他们是管理员,那么我有一些允许的操作.
但是,我不能只检查用户的角色,因为我正在查看角色层次结构.文档中的示例仅用于此in_array,但这不起作用(http://symfony.com/doc/current/best_practices/security.html)
我的选民是这样的(为了清晰起见缩短了).我已经尝试注入安全上下文(或2.6中的AuthorizationCheckerInterface),但由于这是一个选民,因此它具有循环依赖性.
<?php
// ...
class ApplicationVoter extends AbstractVoter
{
const VIEW = 'view';
/**
* @var AuthorizationCheckerInterface
*/
private $security;
/*public function __construct(AuthorizationCheckerInterface $security)
{
$this->security = $security;
}*/
/**
* {@inheritdoc}
*/
protected function getSupportedAttributes()
{
return array(
self::VIEW
);
}
/**
* {@inheritdoc}
*/
protected function getSupportedClasses()
{
return array('Study\MainBundle\Entity\Application');
}
/**
* {@inheritdoc}
*/
protected function isGranted($attribute, $application, $user = null)
{
if (!$user instanceof UserInterface) {
return false;
}
if …Run Code Online (Sandbox Code Playgroud) 好吧,我对 R 还很陌生,我尝试在文档中搜索我需要做的事情,但这就是问题所在。
我有一个名为 heeds.data 的 data.frame,格式如下(为简单起见,省略了一些列) eval.num、eval.count、...fitness、fitness.mean、green.h.0、green.v.0、偏移.0、绿色.h.1、绿色.v.1、...绿色.h.7、绿色.v.7、偏移.7...
我选择了满足以下条件的行:
best.fitness <- min(heeds.data$fitness.mean[heeds.data$eval.count >= 10])
best.row <- heeds.data[heeds.data$fitness.mean == best.fitness]
Run Code Online (Sandbox Code Playgroud)
现在,我想要的是所有其他行的列 green.h.0 到 offset.7 (列的连续部分)等于 best.row
我想这可能有用
heeds.best <- heeds.data$fitness[
heeds.data$green.h.0 == best.row$green.h.0 & ...
]
Run Code Online (Sandbox Code Playgroud)
但对于 24 列来说,这似乎是一个愚蠢的方法。寻找一些更简单、更少手动输入的东西。
这是一个简短的数据示例来展示我想要的内容
eval.num, eval.count, fitness, fitness.mean, green.h.0, green.v.0, offset.0
1 1 1500 1500 100 120 40
2 2 1000 1250 100 120 40
3 3 1250 1250 100 120 40
4 4 1000 1187.5 100 120 40
5 1 2000 2000 200 100 …Run Code Online (Sandbox Code Playgroud)