Skip to content

Instantly share code, notes, and snippets.

<?php namespace Entities;
// model/Entities/Pokemon.php
class Pokemon extends \Eloquent {
/**
* The database table used by the model.
*
* @var string
*/
<?php namespace Repositories\Pokemon;
// model/Repositories/Pokemon/PokemonInterface.php
/**
* A simple interface to set the methods in our Pokemon repository, nothing much happening here
* 簡單的介面去設定我們的 Pokemon 資源庫
*/
interface PokemonInterface
{
public function getPokemonById($pokemonId);
<?php namespace Repositories\Pokemon;
// model/Repositories/Pokemon/PokemonRepository.php
use Illuminate\Database\Eloquent\Model;
use \stdClass;
/**
* Our pokemon repository, containing commonly used queries
* 我們的 pokemon 資源庫,包含一些常用的查詢
*/
<?php namespace Repositories\Pokemon;
// model\Repositories\Pokemon\PokemonRepositoryServiceProvider.php
use Entities\Pokemon;
use Repositories\Pokemon\PokemonRepository;
use Illuminate\Support\ServiceProvider;
/**
* Register our Repository with Laravel
* 註冊我們的資源庫到 Laravel
<?php namespace Services\Pokemon;
// model/Services/Pokemon/PokemonServiceServiceProvider.php
use Illuminate\Support\ServiceProvider;
/**
* Register our pokemon service with Laravel
* 註冊我們的 pokemon 服務到 Laravel
*/
class PokemonServiceServiceProvider extends ServiceProvider
<?php namespace Services\Pokemon;
// model/Services/Pokemon/PokemonService.php
use Repositories\Pokemon\PokemonInterface;
/**
* Our PokemonService, containing all useful methods for business logic around Pokemon
* 我們的 PokemonService 服務,包含所有在 Pokemon 的商業邏輯中有用的方法
*/
class PokemonService
<?php namespace Services\Pokemon;
// model/Services/Pokemon/PokemonFacade.php
use \Illuminate\Support\Facades\Facade;
/**
* Facade class to be called whenever the class PokemonService is called
* Facade 類別當 PokemonService 被呼叫時呼叫
*/
class PokemonFacade extends Facade {
"autoload": {
"classmap": [
"app/models/entities",
"app/models/repositories",
"app/models/repositories/pokemon",
"app/models/services",
"app/models/services/pokemon",
]
},
<?php
// app/config/app.php
// ....
'providers' => array(
'Repositories\Pokemon\PokemonRepositoryServiceProvider',
'Services\Pokemon\PokemonServiceServiceProvider',
),
<?php
// app/config/app.php
// ....
'aliases' => array(
'Pokemon' => 'Services\Pokemon\PokemonFacade',
),