很简单,我有一个节点脚本,我想每个月执行一次.
30 6 1 * * node /home/steve/example/script.js
Run Code Online (Sandbox Code Playgroud)
但这不起作用,大概是因为命令正在运行的路径或shell.我尝试了以下通过cron执行节点的方法(使用-v测试):
steve@atom:~$ node -v
v0.4.2
steve@atom:~$ sh node -v
sh: Can't open node
steve@atom:~$ bash node -v
/usr/local/bin/node: /usr/local/bin/node: cannot execute binary file
steve@atom:~$ /usr/local/bin/node -v
v0.4.2
steve@atom:~$ sh /usr/local/bin/node -v
/usr/local/bin/node: 1: Syntax error: "(" unexpected
steve@atom:~$ bash /usr/local/bin/node -v
/usr/local/bin/node: /usr/local/bin/node: cannot execute binary file
Run Code Online (Sandbox Code Playgroud)
我已经没有想法尝试,任何建议?
我正在尝试调整Jinja2 WithExtension以生成包含块的通用扩展(后面是一些更复杂的扩展).
我的目标是在模板中支持以下内容:
{% wrap template='wrapper.html.j2' ... %}
<img src="{{ url('image:thumbnail' ... }}">
{% endwrap %}
Run Code Online (Sandbox Code Playgroud)
并且对于wrapper.html.j2看起来像:
<div>
some ifs and stuff
{{ content }}
more ifs and stuff
</div>
Run Code Online (Sandbox Code Playgroud)
我相信我的例子大部分都在那里,WithExtension似乎解析了块,然后将一些{% assign .. %}节点的AST表示附加到它正在解析的节点的上下文中.
所以我想我想要相同的东西,那些赋值,然后是一个include块,我希望能够在解析AST时访问这些变量,并传递包装为变量的块content.
到目前为止我有以下内容:
class WrapExtension(Extension):
tags = set(['wrap'])
def parse(self, parser):
node = nodes.Scope(lineno=next(parser.stream).lineno)
assignments = []
while parser.stream.current.type != 'block_end':
lineno = parser.stream.current.lineno
if assignments:
parser.stream.expect('comma')
target = parser.parse_assign_target()
parser.stream.expect('assign')
expr = parser.parse_expression()
assignments.append(nodes.Assign(target, expr, lineno=lineno))
content = parser.parse_statements(('name:endwrap',), drop_needle=True)
assignments.append(nodes.Name('content', …Run Code Online (Sandbox Code Playgroud) 我的表单看起来像这样:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$factory = $builder->getFormFactory();
$builder->add('name');
$builder->add('description');
$builder->add('manufacturers', null, array(
'required' => false
));
$builder->add('departments', 'collection', array(
'type' => new Department
));
}
Run Code Online (Sandbox Code Playgroud)
我在表单所代表的实体上有一个类验证器,它调用:
if (!$valid) {
$this->context->addViolationAtSubPath('departments', $constraint->message);
}
Run Code Online (Sandbox Code Playgroud)
这只会在表单中添加"全局"错误,而不会在子路径中添加错误.我假设这是因为departments是嵌入另一个FormType的集合.
如果我改为departments其他字段之一,它可以正常工作.
如何才能将此错误显示在正确的位置?我假设如果我的错误是在集合中的单个实体上,并因此以子表单形式呈现,它将正常工作,但我的标准是如果集合中没有任何实体被标记为活动,则会发生违规,因此它需要在父母一级.
我正在使用Gedmo Doctrine Extensions,例如SoftDeletable,并且在各个点我需要禁用此过滤器,以便用户可以与软删除的实体或实体的软删除关系进行交互.
这包括但不限于一次在控制器中并且再次在SonataAdmin的特定区域中.
到目前为止,我发现的解决方案是在em上调用getFilters()并禁用softdeleteable,这很好.
然而,两个奏鸣曲管理类和控制器似乎都经历了多次执行,这导致致命的尝试禁用已经禁用的过滤器,所以我必须这样做:
if (array_key_exists('softdeleteable', $this->em->getFilters()->getEnabledFilters())) {
$this->em->getFilters()->disable('softdeleteable');
}
Run Code Online (Sandbox Code Playgroud)
至少可以说这看起来很糟糕.
但是,还有其他问题,例如命令的范围.我还没有发现任何前端问题,但在管理员中,多次执行,其中一个是构建导航(我认为)意味着过滤器始终被禁用,并且只能直接在em上执行此操作在我看来,只要我不想在后端某处禁用该功能,它就会导致一大堆问题.
有没有更好的方法呢?
理想情况下,我最初寻找的是HTML5 Media Capture API的实现,其中polyfill回滚到Flash,但是,我的研究得出结论,API尚处于起步阶段,尚未被任何主要供应商采用除此之外,Flash意味着做我需要的东西似乎很少.
我需要能够从摄像头拍摄网络摄像头,显示实时预览,录制和播放录制内容,仅此而已,无需上传到服务器,所有本地.
有没有像样的Flash解决方案?或其他方法实现这一目标?
我发现了很多对Red5的引用,澄清一下,是否会引用这个:http://www.red5-recorder.com?这真的是使用的工具还是有更好的选择?
我有一个Doctrine2监听器和过滤器,可以过滤掉任何未经批准的/草案实体,它可以在应用它的实体上正常工作,但是,我不知道如何使它适用于它的关系.
让我们说实体被称为类别,然后我有与该类别相关的产品,当我findBy()为产品做一个时,我需要查询来检查它们所涉及的类别是否被批准.
select * from products p
left join category c on p.category_id = c.id
where p.id = 5and c.approved = true
粗体位是需要由我的过滤器或等效物注入的.
我该如何实现呢?
到目前为止,我有一个子查询作为过滤器中的一部分注入,但这似乎是地狱般的,我认为必须有一个更好的方法:
class ApprovableFilter extends SQLFilter
{
protected $listener;
protected $entityManager;
public function addFilterConstraint(ClassMetadata $targetEntity, $targetTableAlias)
{
$config = $this->getListener()->getConfiguration($this->getEntityManager(), $targetEntity->name);
/* this bit works fine for the category */
if (isset($config['approvable']) && $config['approvable']) {
$column = $targetEntity->columnNames[$config['fieldName']];
return $targetTableAlias.'.'.$column.' = true';
}
/* this bit works for products.. but seems like a pretty …Run Code Online (Sandbox Code Playgroud) 我想做这个:
.classname {
color: red
a& {
color: blue;
}
}
Run Code Online (Sandbox Code Playgroud)
并将其编译为:
.classname {
color: red;
}
a.classname {
color: blue;
}
Run Code Online (Sandbox Code Playgroud)
有可用的语法来支持这个吗?我已经尝试使用a&,#{a&}和指南针功能#{append-selector("a", "&")},但他们不编译,a &确实,但结果很明显,在a .classname不是a.classname.
各种新的CSS3属性接受无限的值集,即box-shadow背景渐变.
以box-shadow为例,理想的情况是应该能够做到:
@include box-shadow(10px 15px 10px #FF0000, 15px 10px 10px #0000FF);
Run Code Online (Sandbox Code Playgroud)
尽可能多的参数.问题是Sass需要一个确定数量的参数,即使它没有,我知道没有办法循环它们.
到目前为止,我能想到的最好的混合方式是这样的:
@mixin box-shadow($v1: 0 0 10px #CCC, $v2: "", $v3: "", $v4: "", $v5: "") {
@if $v5 != "" {
-webkit-box-shadow: $v1, $v2, $v3, $v4, $v5;
-moz-box-shadow: $v1, $v2, $v3, $v4, $v5;
-o-box-shadow: $v1, $v2, $v3, $v4, $v5;
box-shadow: $v1, $v2, $v3, $v4, $v5;
} @else if $v4 != "" {
...
} @else {
-webkit-box-shadow: $v1;
-moz-box-shadow: $v1;
-o-box-shadow: $v1;
box-shadow: $v1; …Run Code Online (Sandbox Code Playgroud) symfony-2.1 ×3
css ×2
doctrine-orm ×2
sass ×2
symfony ×2
compass-sass ×1
cron ×1
crontab ×1
css3 ×1
django ×1
django-1.6 ×1
flash ×1
html5 ×1
html5-video ×1
javascript ×1
jinja2 ×1
mixins ×1
node.js ×1
php ×1
python ×1
python-2.7 ×1
webcam ×1