コード例 #1
0
ファイル: MethodInfo.php プロジェクト: bzick/koda
 /**
  * Invoke method
  *
  * @param array $params
  * @param Filter $filter
  *
  * @return mixed
  * @throws \Koda\Error\TypeCastingException
  */
 public function invoke(array $params, Filter $filter = null)
 {
     if (!$filter) {
         $filter = \Koda::getFilter($this->name);
     }
     $args = $this->filterArgs($params, $filter);
     return call_user_func_array([$filter->context ?: $this->class, $this->method], $args);
 }
コード例 #2
0
ファイル: KodaTest.php プロジェクト: bzick/koda
 /**
  * @group dev
  */
 public function testObject()
 {
     $object = \Koda::object(Samples::class, ["index" => 16]);
     $this->assertEquals(new Samples(), $object);
     $object = \Koda::object(SampleObject::class, ["index" => 16, "factory" => 64, "inject" => 3], ["injector" => function (ArgumentInfo $info, $value) {
         return $value . "2";
     }, "factory" => function (ArgumentInfo $info, $value) {
         return new \ArrayObject(["param" => $value]);
     }]);
     $this->assertEquals(new SampleObject(16, 32, new \ArrayObject(["param" => 64])), $object);
 }
コード例 #3
0
ファイル: koda.php プロジェクト: sergeyk-jomedia/koda
<?php

require_once __DIR__ . '/../vendor/autoload.php';
$toxen = new \Koda(__DIR__);
$toxen->dispatch();
コード例 #4
0
ファイル: run.php プロジェクト: bzick/koda
<?php

require_once __DIR__ . '/../vendor/autoload.php';
class Example
{
    public function __construct()
    {
    }
    /**
     * Calculate of hypotenuse
     * @param float $leg1 (unsigned)
     * @param float $leg2 (unsigned)
     * @param int $round (value 1..6)
     * @return float
     */
    public function hypotenuseCalc($leg1, $leg2, $round = 2)
    {
        var_dump("=======", $leg1, $leg2, $round);
        return round(sqrt($leg1 * $leg1 + $leg2 * $leg2), $round);
    }
    public function test()
    {
    }
}
$class = new Koda\ClassInfo('Example', Koda\ClassInfo::FLAG_OBJECT, "*Calc");
var_dump(json_encode($class, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES));
//var_dump(Koda::call([new Example(), 'hypotenuseCalc'], ['leg2' => 3, 'leg1' => 4]));
var_dump(Koda::object(Example::class));
コード例 #5
0
ファイル: MethodInfoTest.php プロジェクト: bzick/koda
 /**
  * @dataProvider rangesProvider
  * @param $values
  * @param $success
  */
 public function testRanges($values, $success)
 {
     if ($success) {
         $this->assertTrue(\Koda::call([Samples::class, "ranges"], $values));
     } else {
         try {
             \Koda::call([Samples::class, "ranges"], $values);
             $this->fail("Should fail");
         } catch (InvalidArgumentException $e) {
         }
     }
 }