小编Ain*_*ine的帖子

将逗号作为小数点转换为float

我有一个价格列表,其中包含一个小数点的逗号和一个点作为千位分隔符.

一些例子:

12,30
116,10
1.563,14

这些来自第三方.我想将它们转换为浮点数并将它们加在一起.

做这个的最好方式是什么?number_format似乎不适用于这种格式,str_replace似乎有点矫枉过正,因为我必须在每个数字上多做一次.

有更好的方法吗?谢谢.

php floating-point parsing

59
推荐指数
6
解决办法
12万
查看次数

使用phpunit测试Laravel(5.1)控制台命令

测试Laravel控制台命令的最佳方法是什么?

这是我正在运行的命令的示例。它在构造函数和handle方法中接受一个值。

class DoSomething extends Command
{
    protected $signature = 'app:do-something';
    protected $description = 'Does something';

    public function __construct(A $a)
    {
        ...
    }

    public function handle(B $b)
    {
        ...    
    }
}
Run Code Online (Sandbox Code Playgroud)

在测试类中,我可以模拟A和B,但是我不知道如何传入$ a。

$this->artisan('app:do-something', [$b]);
Run Code Online (Sandbox Code Playgroud)

可能吗?还是我要解决所有这些错误?我是否应该将所有事情都传递给handle()方法?

谢谢。

phpunit laravel-5

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

this.function不是函数错误,但函数存在

我有一些代码来获取日历事件并显示它们.自上次调用后,如果事件已更改,则仅更新显示.

var calendar = {

    events = null,

    display_calendar_events : function (data) {
        // Some display stuff...
    },

    get_events: function() {

        // Get messages for calendar
        $.getJSON("/ajax/get-events/", function(json){

            var new_events = json.data;
            // If events haven't changed, do nothing
            if (this.events === new_events) {
                return true;
            }

            // Events have changed. 
            // Save new events
            this.events = new_events;

            // Display new events
            this.display_calendar_events(json);
        });
   },
}
Run Code Online (Sandbox Code Playgroud)

我称之为:

calendar.get_queued_events();
Run Code Online (Sandbox Code Playgroud)

问题是,我收到错误"this.display_calendar_events不是函数"(最后一行代码).但是,如果我将此行更改为:

calendar.display_canendar_events(josn)
Run Code Online (Sandbox Code Playgroud)

有用.使用"this.events"存储旧事件在两种情况下都能正常工作.

谁可以给我解释一下这个?"这个"如何为某些东西而不是其他东西工作?谢谢.

javascript function this

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

Facebook Graph API - 获取每个广告集的每日支出

我正在尝试为每个广告帐户设置每个广告的每日费用.我们在Facebook上花了很多钱,而金融希望看到它的发展方向.基本上,我每天都在寻找昨天每套广告的花费.问题是,有很多广告集.

我试图分两部分来做这件事.首先从Graph API获取广告集ID.然后使用Marketing API获取支出.

1.图形API(v.2.4)

我收到了所有广告集的列表.我不能在一次通话中这样做,因为有很多结果(超过九页).

GET/v2.4/me/adaccounts?fields=name,adcampaign_groups{id,name,campaign_group_status,account_id,adcampaigns{id,name}}
Run Code Online (Sandbox Code Playgroud)

2.营销API

为了获得昨天的支出,我正在为每个广告集调用Marketing API.这是我正在使用的PHP代码:

// Get spend for yesterday
$adSet = new \FacebookAds\Object\AdSet($adSetId);
$params = array(
    'date_preset' => InsightsPresets::YESTERDAY,
);
/** @var Cursor $insights */
$insights = $adSet->getInsights(array('spend'), $params);
$insights->rewind();
$spend = 0;
if ($insights->current() != false) {
    $spend = $insights->current()->getData()['spend'];
}
Run Code Online (Sandbox Code Playgroud)

由于我有很多广告集,所以在我获得所需数据之前很久就达到了我的小跑限制.

有没有办法在一次通话中获取此信息?如果没有,我可以在较少的电话中从Marketing API获取支出数据吗?

如果有帮助,我很高兴更新到Graph API v2.5.我正在使用作曲家库:

facebook/php-sdk-v4: ~5.0
facebook/php-ads-sdk: 2.4.*
Run Code Online (Sandbox Code Playgroud)

谢谢.

php facebook facebook-graph-api facebook-marketing-api facebook-graph-api-v2.4

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

Phpunit - 模拟SoapFault-> getMessage()

我正在使用SOAP 连接到第三方服务.此服务有时会返回SoapFaults.因为这是预期的,我想通过模拟SoapFaults来测试它.它将返回五种标准的SoapFaults.

这是一个真正的SoapFault的开始:

object(SoapFault)#7 (11) {
  ["message":protected]=>
  string(19) "{ 'INVALID_INPUT' }"
Run Code Online (Sandbox Code Playgroud)

我对此消息感兴趣.在我的代码中,我使用$ e-> getMessage().

catch (SoapFault $e)
{
    // Catch any Soap faults and convert to an error message
    switch ($e->getMessage())
    {
        case "{ 'INVALID_INPUT' }":
            $this->addError(self::INVALID_INPUT);
            return FALSE;
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚如何模拟SoapClient响应.SoapClient对象似乎没有接受任何输入来设置消息,并且该方法getMessage()是最终的,所以我无法模拟它.

任何想法,将不胜感激.谢谢.

php phpunit soap

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

Zend框架2 - 独立表单

是否可以将ZF2表单用作独立组件?ZF1可以实现这一点,但我无法用ZF2来解决这个问题.

我可以创建一个表单和一个验证器,但无法弄清楚如何呈现表单:

$form = new AddressBookForm('address_book'); \\ extends Zend\Form\Form

if ($this->input->isPost()) {
    $validator = new AddressBookValidator(); \\ implements Zend\InputFilter\InputFilterAwareInterface
    $form->setInputFilter($validator->getInputFilter());
    $form->setData($this->input->getPost());

    if ($form->isValid()) {
        echo 'valid'; exit;
    }
}

// Render form somehow here???
Run Code Online (Sandbox Code Playgroud)

我尝试创建一个视图,但无法弄清楚如何给它视图助手.谢谢.

forms zend-framework2

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