小编And*_*rea的帖子

哪个PHP shell?

Python,Ruby或LISP等语言的一个很好的特性是交互式shell的可用性.这是一个Read-Eval-Print循环,允许快速试验语言而无需编写和执行脚本.

不幸的是,PHP没有开箱即用,但可以在线找到 一些外部工具.我找到了三个,我不确定哪个是相对优势?

有没有人尝试过这些炮弹中的一个并且可以提供一些关于使用哪一个的建议?

php shell read-eval-print-loop

2
推荐指数
2
解决办法
200
查看次数

Groovy - 根据环境配置日志记录属性

我正在编写一个简单的Groovy应用程序,需要进行一些日志记录.记录事物的实际属性取决于特定环境.例如,在开发时我只想登录到控制台,在测试和生产中我可能想要写入文件,在生产中我可能想要发送最严重事件的电子邮件.

现在我正在做的事情看起来像这样:

import org.apache.log4j.Logger
import org.apache.log4j.PropertyConfigurator

class BaseClass {
    protected config

    static Logger logger = Logger.getLogger(BaseClient.class)

    def BaseClass(env) {
        def configFilePath = // whatever

        config = new JsonSlurper().parseText(configFile.text)[options.env]

        def logConfigFilePath = ['somelogdir', config.log_file].join(File.separator)
        PropertyConfigurator.configure(logConfigFilePath)
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我需要进行日志记录的所有类都继承自BaseClass.

通过这种方式,我可以为每个环境指定不同的文件名,然后从那里读取日志记录配置.但它似乎有很多样板,并迫使我使用可能不理想的层次结构.

另一方面,在这里我看到我可以获得一个带有简单注释的记录器.

有没有办法根据环境获得不同的记录器 - 可以在运行时设置?

groovy logging log4j

2
推荐指数
1
解决办法
8289
查看次数

从普通的Groovy转移到Gradle

我在Groovy中有一个很小的应用程序.目前我可以在命令行上测试它,但我需要将它与Jenkins服务器集成.因此,我曾考虑将其与Gradle集成,以Jenkins可以读取的标准格式生成测试输出.(请考虑一下我是Groovy,Gradle,Jenkins和JVM环境的新手).

目前,我所有的测试都在一个MyTest扩展的类中GroovyTestCase.我可以用一个像bash这样的小脚本来运行它

#! /bin/bash

DIR=$( cd "$( dirname "$0" )" && pwd )
LIBS="$DIR/lib/*"

groovy -cp "$LIBS" path/to/MyTest.groovy
Run Code Online (Sandbox Code Playgroud)

在这种布局中有很多我不喜欢的东西:

  • 首先,我想将测试分成多个类并将它们加入到测试套件中,但测试用例的优势在于它可以在Groovy中自动运行
  • 其次,正如我所说,我希望能够获得Jenkins消费的测试报告
  • 第三,我不知道是否将所有必需的罐放入lib目录是一个好习惯 - 可能不是.

Gradle似乎正是我需要的工具.但是我发现的所有文档都假定了Java,Ant,Maven和整个生态系统的先前知识.

创建有效的Gradle项目的基本步骤是什么?

我按照此处的建议重新组织了目录结构,但我不明白如何声明依赖项.例如,使用此build.gradle

apply plugin: 'groovy'

repositories {
  mavenCentral()
}

dependencies {
  groovy group: 'org.codehaus.groovy', name: 'groovy', version: '1.8.0'
  runtime group: 'org.apache.log4j', name: 'log4j', version: '1.2.0'
}
Run Code Online (Sandbox Code Playgroud)

我得到了错误

unable to resolve class org.apache.log4j.Level
 @ line 5, column 1.
   import org.apache.log4j.Level
   ^
Run Code Online (Sandbox Code Playgroud)

如果我将存储库更改为

repositories {
  mavenCentral()
  flatDir { dirs …
Run Code Online (Sandbox Code Playgroud)

testing groovy gradle jenkins

2
推荐指数
1
解决办法
1602
查看次数

使用scala Maps累积值

可能重复:
合并两个映射并将相同键的值相加的最佳方法是什么?

我有一堆类型的地图Map[String, Int].我希望能够在键对应时将它们合并为值.例如,++地图上的标准方法给出了

Map("a" -> 1, "b" -> 2) ++ Map("a" -> 3, "c" -> 5)
// Map[String,Int] = Map(a -> 3, b -> 2, c -> 5)
Run Code Online (Sandbox Code Playgroud)

我想定义一个结果会给出的操作

Map("a" -> 1, "b" -> 2) ?? Map("a" -> 3, "c" -> 5)
// Map[String,Int] = Map(a -> 4, b -> 2, c -> 5)
Run Code Online (Sandbox Code Playgroud)

在花哨的措辞中,Map[A, B]总是具有幺半群的自然结构,但是当B它本身就是幺半群时有一个不同的结构.

现在,编写一个递归实现并不困难LinkedHashMap,但我认为必须有一些简单而更通用的方法来编写它,可能使用scalaz.有任何想法吗?

scala scalaz

2
推荐指数
1
解决办法
751
查看次数

组合和扩展Ractive组件

我开始使用Ractive,我想更好地了解如何制作可重用的组件.编写可在不同情况下使用的通用小部件非常容易.我的问题是,我的应用程序中的数据通常不是小部件所期望的形状,我不知道如何扩展小部件以使其更具应用程序特定性.

举一个具体的例子,假设我正在编写一个Ractive组件来设计折线图.我会做一些事情

var Chart = Ractive.extend({
  template: chart,
  data: {
    points_to_path: function(points) {
      // whatever
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

用像这样的模板

<svg>
  {{# points_to_path(points) }}
    <path d="{{ path }}" />
  {{/ end of path }}
</svg>
Run Code Online (Sandbox Code Playgroud)

这个组件可以像

var chart = new Chart({
  data: {
    points: [[1, 2], [3, 4], [5, 6]]
  }
});
Run Code Online (Sandbox Code Playgroud)

现在假设我实际上需要使用这样的组件.可能我的数据不是像points上面那样以双组件数组的形式出现的.也许我有更喜欢的东西

[
  {
    date: 'aug 2011',
    value: 12.51
  },
  {
    date: 'sep 2011',
    value: 12.38
  },
  ...
]
Run Code Online (Sandbox Code Playgroud)

所以,我想要做的是更具体的应用程序Chart,接受上述形式的数据.我没有看到一个简单的方法Chart.extend,因为对points变量的引用是硬编码的 …

javascript ractivejs

2
推荐指数
1
解决办法
1778
查看次数

symfony中的表单

我是symfony的初学者,我无法理解表格生成.从理论上讲,甚至还有一个表单框架,具有完全的灵活性.但是,据我所知,表单在symfony中呈现为表格.我习惯CakePHP,我可以一次输出一个输入元素,然后按照我的意愿包装它们:在表格,div,无论什么,或者,通常都没有,只需使用CSS来正确定位它们.

我有点震惊的是,一个具有如此高标准的代码质量的框架然后输出不需要它们的HTML表.我想我只是错过了一些东西.

有没有办法将表单作为表单输出,没有额外的HTML标签?

php forms symfony1

1
推荐指数
1
解决办法
446
查看次数

将URL作为URL参数传递

我正在CakePHP应用程序中实现OpenId登录.在某个时刻,我需要重定向到另一个动作,同时保留有关OpenId身份的信息,例如,它本身就是一个URL(带有GET参数),例如

https://www.google.com/accounts/o8/id?id=31g2iy321i3y1idh43q7tyYgdsjhd863Es

我如何传递这些数据?第一次尝试将是

function openid() {
    ...
    $this->redirect(array('controller' => 'users', 'action' => 'openid_create', $openid));
}
Run Code Online (Sandbox Code Playgroud)

但显而易见的问题是,这完全搞砸了CakePHP解析URL参数的方式.

我需要做以下任何一种情况:

1)以CakePHP友好的方式对URL进行编码以传递它,然后对其进行解码,或者

2)将URL作为POST参数传递

但我不知道该怎么做.

编辑:回应评论,我应该更清楚.我正在使用OpenId组件,我有一个有效的OpenId实现.我需要做的是将OpenId链接到现有的用户系统.当新用户通过OpenId登录时,我会询问更多详细信息,然后使用此数据创建新用户.问题是我必须在整个过程中保留OpenId URL.

php url cakephp

0
推荐指数
1
解决办法
1081
查看次数