×ðÁú¿­Ê±¹ÙÍøµÇ¼

ThinkPHP6ÖÐÔõÑùʹÓÃIocÈÝÆ÷ʵÏÖÒÀÀµ×¢Èë £¿

ÔÚÏÖ´úµÄphp¿ª·¢ÖУ¬ÒÀÀµ×¢ÈëÊÇÒ»Ïî²»¿É»òȱµÄÊÖÒÕ ¡£ËüÔÊÐíÎÒÃǸüÇáËɵØÖÎÀí´úÂëµÄÖØƯºó£¬²¢Ôö½ø´úÂëÖØÓúͿÉά»¤ÐÔ ¡£¶øthinkphp6×÷Ϊһ¿îÊ¢ÐеÄphp¿ò¼Ü£¬Ò²ÌṩÁËÒ»ÖÖÇáÓ¯µÄ·½·¨À´ÊµÏÖÒÀÀµ×¢È롪¡ªiocÈÝÆ÷ ¡£

IocÈÝÆ÷¼´Inversion of Control(Container)£¬ËüÊÇÒ»¸öͨÓõŤ³§Ä£Ê½£¬ÓÃÓÚʵÏÖ¹¤¾ßµÄÒÀÀµ×¢Èë ¡£Í¨¹ýIocÈÝÆ÷£¬ÎÒÃÇ¿ÉÒÔ½«¹¤¾ßµÄ½¨ÉèºÍ¹¤¾ßµÄÒÀÀµ×¢ÈëÊèÉ¢¿ªÀ´ ¡£ÔÚThinkPHP6ÖУ¬IocÈÝÆ÷±»¼¯³ÉÔÚ¿ò¼ÜµÄ½¹µã×é¼þÖУ¬²¢ÇÒ¿ÉÒÔÔÚÕû¸öÓ¦ÓóÌÐòÖÐʹÓà ¡£

ÄÇô£¬ÔõÑùʹÓÃThinkPHP6ÖеÄIocÈÝÆ÷ʵÏÖÒÀÀµ×¢ÈëÄØ £¿ÏÂÃæÎÒÃǽ«Ïêϸ½â˵ ¡£

°ì·¨1£º½¨ÉèÐèҪʵÀý»¯µÄÀà

Ê×ÏÈ£¬ÎÒÃÇÐèÒª½¨ÉèÒ»¸öÐèҪʵÀý»¯µÄÀ࣬ÔÚ¸ÃÀàÖнç˵ÐèҪעÈëµÄÒÀÀµ ¡£×÷ΪʾÀý£¬ÕâÀïÎÒÃǽ¨ÉèÒ»¸öUserServiceÀ࣬²¢Ôڽṹº¯ÊýÖÐ×¢ÈëÒ»¸öUserRepositoryÀàµÄʵÀý ¡£

Á¬Ã¦Ñ§Ï°¡°PHPÃâ·ÑѧϰÌõ¼Ç£¨ÉîÈ룩¡± £»

namespace appservice;

use appepositoryUserRepository;

class UserService
{
    protected $userRepository;

    public function __construct(UserRepository $userRepository)
    {
        $this->userRepository = $userRepository;
    }

    public function getUserList()
    {
        return $this->userRepository->getList();
    }
}

µÇ¼ºó¸´ÖÆ

°ì·¨2£º½¨ÉèÒÀÀµµÄÀà

½ÓÏÂÀ´£¬ÎÒÃÇÐèÒªÏȽ¨ÉèÒÀÀµµÄÀàUserRepository ¡£ÔÚʾÀýÖУ¬ÎÒÃǼòÆӵؽç˵һ¸ö·µ»ØËùÓÐÓû§ÁбíµÄgetListÒªÁì ¡£

namespace appepository;

class UserRepository
{
    public function getList()
    {
        return ['user1', 'user2', 'user3'];
    }
}

µÇ¼ºó¸´ÖÆ

°ì·¨3£ºÉèÖÃIocÈÝÆ÷

ÏÖÔÚ£¬ÎÒÃÇÐèÒªÔÚÓ¦ÓóÌÐòµÄÉèÖÃÎļþÖÐÉèÖÃIocÈÝÆ÷ ¡£ÔÚThinkPHP6ÖУ¬ÉèÖÃÎļþλÓÚconfigĿ¼Ï£¬½¨ÒéÎÒÃǽ¨ÉèÒ»¸öеÄcontainer.phpÉèÖÃÎļþ ¡£

ÔÚ¸ÃÉèÖÃÎļþÖУ¬ÎÒÃÇÐèҪע²áÐèҪʵÀý»¯µÄÀàºÍÆäÒÀÀµµÄÀ࣬ÒÔ±ãÓÚIocÈÝÆ÷Äܹ»×¼È·µØ×¢ÈëÒÀÀµ ¡£

¼ÙÉèÎÒÃÇÒѾ­½¨ÉèºÃÁËUserServiceºÍUserRepositoryÁ½¸öÀ࣬ÎÒÃÇÐèÒªÔÚÈÝÆ÷Öн«ËüÃÇ×¢²áÈçÏ£º

use appserviceUserService;
use appepositoryUserRepository;

return [
    'services' => [
        UserService::class => function($container) {
            return new UserService(
                $container->get(UserRepository::class)
            );
        },
    ],
    'repositories' => [
        UserRepository::class => new UserRepository(),
    ],
];

µÇ¼ºó¸´ÖÆ

ÔÚÒÔÉÏ´úÂëÖУ¬ÎÒÃÇÊ×ÏȽ«UserServiceÀàºÍÆäÒÀÀµµÄUserRepositoryÀà×¢²áµ½Ð§ÀÍ(‘services’)ºÍ¿ÍÕ»(‘repositories’)µÄÀàÐÍÖÐ ¡£ÆäÖÐЧÀÍÊÇ¿ÉÒÔ×¢ÈëµÄ£¬¶ø¿ÍÕ»ÊDz»ÐèҪעÈëµÄ£¬ÒÔÊÇЧÀÍÐèҪʹÓÃÒ»¸ö»Øµ÷º¯Êý½¨É蹤¾ß²¢×¢ÈëÒÀÀµ£¬¶ø¿ÍÕ»ÔòÖ±½ÓʵÀý»¯²¢×¢²á ¡£

°ì·¨4£ºÊ¹ÓÃIocÈÝÆ÷

×îºó£¬ÎÒÃÇÐèҪʹÓÃIocÈÝÆ÷À´ÊµÀý»¯×¢²áµ½ÈÝÆ÷ÖеÄЧÀÍ ¡£

ÔÚÎÒÃǵÄʾÀýÖУ¬ÎÒÃÇ¿ÉÒÔÔÚ¿ØÖÆÆ÷ÖÐʹÓÃIocÈÝÆ÷×¢ÈëUserService²¢Å²ÓÃÒªÁì ¡£ÔÚÏêϸ´úÂëÖУ¬ÎÒÃÇ¿ÉÒÔÕâÑùд£º

namespace appcontroller;

use appserviceUserService;
use thinkacadeContainer;

class UserController
{
    public function index()
    {
        $userService = Container::get(UserService::class);
        $userList = $userService->getUserList();
        return json($userList);
    }
}

µÇ¼ºó¸´ÖÆ

ÔÚÒÔÉÏ´úÂëÖУ¬ÎÒÃÇÊ×ÏÈʹÓÃÈÝÆ÷µÄgetÒªÁì»ñÈ¡UserServiceµÄʵÀý£¬È»ºóŲÓÃgetUserListÒªÁìÀ´»ñÈ¡Óû§Áбí£¬²¢½«ÁбíÒÔjsonÃûÌ÷µ»Ø ¡£

Íê³ÉÒÔÉÏÉèÖúó£¬ÎÒÃǾÍÀֳɵØʹÓÃÁËThinkPHP6µÄIocÈÝÆ÷À´ÊµÏÖÒÀÀµ×¢Èë ¡£

×ܽá

ÔÚ±¾ÎÄÖУ¬ÎÒÃÇÏêϸ½â˵ÁËÔõÑùʹÓÃThinkPHP6µÄIocÈÝÆ÷À´ÊµÏÖÒÀÀµ×¢Èë ¡£Í¨¹ýIocÈÝÆ÷£¬ÎÒÃÇ¿ÉÒÔ½«¹¤¾ßµÄÒÀÀµ×¢ÈëÓ빤¾ßµÄ½¨ÉèÊèÉ¢¿ªÀ´£¬Ê¹µÃ´úÂë¸üÒ×ÓÚÖÎÀíºÍά»¤ ¡£Í¬Ê±£¬IocÈÝÆ÷Ò²¿ÉÒÔ´ó´ó¼ò»¯ÎÒÃǵĴúÂëÂß¼­£¬Ìá¸ß´úÂëµÄ¿ÉÖØÓÃÐԺͿɲâÊÔÐÔ ¡£

ÒÔÉϾÍÊÇThinkPHP6ÖÐÔõÑùʹÓÃIocÈÝÆ÷ʵÏÖÒÀÀµ×¢Èë £¿µÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡

ÃâÔð˵Ã÷£ºÒÔÉÏչʾÄÚÈÝȪԴÓÚÏàÖúýÌå¡¢ÆóÒµ»ú¹¹¡¢ÍøÓÑÌṩ»òÍøÂçÍøÂçÕûÀí£¬°æȨÕùÒéÓë±¾Õ¾Î޹أ¬ÎÄÕÂÉæ¼°¿´·¨Óë¿´·¨²»´ú±í×ðÁú¿­Ê±¹ÙÍøµÇ¼ÂËÓÍ»úÍø¹Ù·½Ì¬¶È£¬Çë¶ÁÕß½ö×ö²Î¿¼ ¡£±¾ÎĽӴýתÔØ£¬×ªÔØÇë˵Ã÷À´ÓÉ ¡£ÈôÄúÒÔΪ±¾ÎÄÇÖÕ¼ÁËÄúµÄ°æȨÐÅÏ¢£¬»òÄú·¢Ã÷¸ÃÄÚÈÝÓÐÈκÎÉæ¼°ÓÐÎ¥¹«µÂ¡¢Ã°·¸Ö´·¨µÈÎ¥·¨ÐÅÏ¢£¬ÇëÄúÁ¬Ã¦ÁªÏµ×ðÁú¿­Ê±¹ÙÍøµÇ¼ʵʱÐÞÕý»òɾ³ý ¡£

Ïà¹ØÐÂÎÅ

ÁªÏµ×ðÁú¿­Ê±¹ÙÍøµÇ¼

18523999891

¿É΢ÐÅÔÚÏß×Éѯ

ÊÂÇéʱ¼ä£ºÖÜÒ»ÖÁÖÜÎ壬9:30-18:30£¬½ÚãåÈÕÐÝÏ¢

QR code
ÍøÕ¾µØͼ