小编lik*_*rRr的帖子

使用Laravel实现存储库模式

最近我开始学习Laravel 4它的能力.我想实现Repository模式以在那里移动模型逻辑.在这一点上,我面临着如何组织它的一些不便或误解.一般问题我有这样的事情:是否可以Laravel毫无头痛地实施和应用这种模式,是否值得

这个问题将分为几个部分,这引起了我的困惑.

1)Laravel提供了将模型绑定为控制器参数的便捷方式,例如我这样做:

// routes.php
Route::bind('article', function($slug)
{
    return Article::where('slug', $slug)->first();
});

Route::get('articles/{article}', 'ArticlesController@getArticle');

// controllers/ArticlesController.php
class ArticlesController extends BaseController {

    public function getArticle(Article $article)
    {
        return View::make('article.show', compact('article'));
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我想使用该Repository模式,那么我不能使用这种方法,因为在这种情况下控制器会清楚地意识到模型的存在Article以这种方式使用Repository模式重写此示例是否正确:

// routes.php
Route::get('articles/{slug}', 'ArticlesController@getArticle');

// controllers/ArticlesController.php
class ArticlesController extends BaseController {

    private $article;

    public function __construct(ArticleRepository $article) {
        $this->article = $article;
    }

    public function getArticle($slug)
    {
        $article = $this->article->findBySlug($slug);

        return View::make('article.show', compact('article'));
    }
}
Run Code Online (Sandbox Code Playgroud)

2)假设,我上面的代码使用 …

php design-patterns repository-pattern laravel

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

如何使用Typescript的自定义方法实现类似数组的类?

我想实现一个类似数组的类:

  1. 接受数组作为构造函数的参数
  2. 应该是可迭代的,并具有所有内置数组的方法
  3. 有一些自定义方法
  4. 应该可以扩展其他类

我看到这样的:

class BaseModel {
  arr: Array;

  constructor(arr: Array<any>) { // <= req. #1
    this.arr = arr;
  }

  serialize(arr) { // <= req. #3
    this.arr = arr;
  }
}

class ListModel extends BaseModel { // <= req. #4
  constructor(arr: Array<any>) { // <= req. #1
    super(arr);
  }

  sayHello() { // <= req. #3
    console.log('hello');
  }
}

let list = new ListModel([1,2,3]);
list.sayHello();
// expected output:
// 'hello'
list.push(4); // <= req. #2

for (let a of …
Run Code Online (Sandbox Code Playgroud)

javascript arrays iterable class typescript

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