{"id":808,"date":"2025-06-12T00:12:29","date_gmt":"2025-06-11T16:12:29","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/laravel\/808.html"},"modified":"2025-06-12T00:12:29","modified_gmt":"2025-06-11T16:12:29","slug":"%e5%a6%82%e4%bd%95%e5%9c%a8-laravel-%e4%b8%ad%e5%90%91%e6%8e%a7%e5%88%b6%e5%99%a8%e6%b3%a8%e5%85%a5%e4%be%9d%e8%b5%96","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/808.html","title":{"rendered":"\u5982\u4f55\u5728 Laravel \u4e2d\u5411\u63a7\u5236\u5668\u6ce8\u5165\u4f9d\u8d56"},"content":{"rendered":"<div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--1\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/dyA-1-400x300.jpg\" alt=\"Bug&#32534;&#35793;&#29422;\" class=\"wp-image-1842\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">Bug&#32534;&#35793;&#29422;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#22312; Laravel &#20013;&#65292;&#21521;&#25511;&#21046;&#22120;&#27880;&#20837;&#20381;&#36182;&#21487;&#20197;&#36890;&#36807;&#22810;&#31181;&#26041;&#24335;&#23454;&#29616;&#12290;&#20197;&#19979;&#26159;&#20960;&#31181;&#24120;&#35265;&#30340;&#26041;&#27861;&#65306;<\/p>\n<h3>&#26041;&#27861;&#19968;&#65306;&#20351;&#29992;&#26500;&#36896;&#20989;&#25968;&#27880;&#20837;<\/h3>\n<ol>\n<li>\n<p><strong>&#21019;&#24314;&#26381;&#21153;&#25552;&#20379;&#32773;<\/strong>&#65306;\n&#39318;&#20808;&#65292;&#20320;&#38656;&#35201;&#21019;&#24314;&#19968;&#20010;&#26381;&#21153;&#25552;&#20379;&#32773;&#26469;&#27880;&#20876;&#20320;&#30340;&#20381;&#36182;&#12290;<\/p>\n<pre><code class=\"language-php\">\/\/ app\/Providers\/AppServiceProvider.php\nnamespace AppProviders;\n\nuse IlluminateSupportServiceProvider;\nuse AppServicesMyService;\n\nclass AppServiceProvider extends ServiceProvider\n{\n   public function register()\n   {\n       $this-&gt;app-&gt;bind(MyService::class, function ($app) {\n           return new MyService();\n       });\n   }\n}<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#22312;&#25511;&#21046;&#22120;&#20013;&#20351;&#29992;&#26500;&#36896;&#20989;&#25968;&#27880;&#20837;<\/strong>&#65306;\n&#29616;&#22312;&#20320;&#21487;&#20197;&#36890;&#36807;&#26500;&#36896;&#20989;&#25968;&#27880;&#20837;&#26381;&#21153;&#21040;&#20320;&#30340;&#25511;&#21046;&#22120;&#20013;&#12290;<\/p>\n<pre><code class=\"language-php\">\/\/ app\/Http\/Controllers\/ExampleController.php\nnamespace AppHttpControllers;\n\nuse AppServicesMyService;\n\nclass ExampleController extends Controller\n{\n   protected $myService;\n\n   public function __construct(MyService $myService)\n   {\n       $this-&gt;myService = $myService;\n   }\n\n   public function index()\n   {\n       return view('example.index', ['message' =&gt; $this-&gt;myService-&gt;getMessage()]);\n   }\n}<\/code><\/pre>\n<\/li>\n<\/ol>\n<h3>&#26041;&#27861;&#20108;&#65306;&#20351;&#29992; <code>app<\/code> &#21629;&#20196;&#27880;&#20837;<\/h3>\n<p>&#22914;&#26524;&#20320;&#21482;&#38656;&#35201;&#22312;&#26576;&#20010;&#29305;&#23450;&#30340;&#35831;&#27714;&#20013;&#27880;&#20837;&#20381;&#36182;&#65292;&#21487;&#20197;&#20351;&#29992; <code>app<\/code> &#21629;&#20196;&#27880;&#20837;&#12290;<\/p>\n<pre><code class=\"language-php\">\/\/ app\/Http\/Controllers\/ExampleController.php\nnamespace AppHttpControllers;\n\nuse IlluminateHttpRequest;\nuse AppServicesMyService;\n\nclass ExampleController extends Controller\n{\n    public function index(Request $request)\n    {\n        $myService = app(MyService::class);\n        return view('example.index', ['message' =&gt; $myService-&gt;getMessage()]);\n    }\n}<\/code><\/pre>\n<h3>&#26041;&#27861;&#19977;&#65306;&#20351;&#29992; <code>app<\/code> &#20107;&#20214;&#32465;&#23450;&#27880;&#20837;<\/h3>\n<p>&#20320;&#20063;&#21487;&#20197;&#23558;&#20381;&#36182;&#32465;&#23450;&#21040;&#20107;&#20214;&#20013;&#65292;&#20197;&#20415;&#22312;&#25972;&#20010;&#24212;&#29992;&#20013;&#20849;&#20139;&#36825;&#20123;&#20381;&#36182;&#12290;<\/p>\n<pre><code class=\"language-php\">\/\/ app\/Providers\/AppServiceProvider.php\nnamespace AppProviders;\n\nuse IlluminateSupportServiceProvider;\nuse AppServicesMyService;\nuse IlluminateEventsEventServiceProvider;\n\nclass AppServiceProvider extends ServiceProvider\n{\n    public function boot(EventServiceProvider $eventProvider)\n    {\n        $eventProvider-&gt;listen(IlluminateHttpRequest::class, function (IlluminateHttpRequest $request) {\n            $myService = app(MyService::class);\n            return view('example.index', ['message' =&gt; $myService-&gt;getMessage()]);\n        });\n    }\n}<\/code><\/pre>\n<h3>&#31034;&#20363;&#20195;&#30721;<\/h3>\n<p>&#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010;&#31616;&#21333;&#30340; <code>MyService<\/code> &#31867;&#65292;&#24182;&#19988;&#25105;&#20204;&#24076;&#26395;&#22312;&#25511;&#21046;&#22120;&#20013;&#20351;&#29992;&#23427;&#12290;<\/p>\n<pre><code class=\"language-php\">\/\/ app\/Services\/MyService.php\nnamespace AppServices;\n\nclass MyService\n{\n    public function getMessage()\n    {\n        return 'Hello from MyService!';\n    }\n}<\/code><\/pre>\n<p>&#28982;&#21518;&#65292;&#25105;&#20204;&#22312;&#25511;&#21046;&#22120;&#20013;&#20351;&#29992;&#26500;&#36896;&#20989;&#25968;&#27880;&#20837;&#65306;<\/p>\n<pre><code class=\"language-php\">\/\/ app\/Http\/Controllers\/ExampleController.php\nnamespace AppHttpControllers;\n\nuse AppServicesMyService;\n\nclass ExampleController extends Controller\n{\n    protected $myService;\n\n    public function __construct(MyService $myService)\n    {\n        $this-&gt;myService = $myService;\n    }\n\n    public function index()\n    {\n        return view('example.index', ['message' =&gt; $this-&gt;myService-&gt;getMessage()]);\n    }\n}<\/code><\/pre>\n<p>&#36825;&#26679;&#65292;&#24403;&#20320;&#35775;&#38382; <code>\/example\/index<\/code> &#36335;&#30001;&#26102;&#65292;&#20250;&#26174;&#31034; &#8220;Hello from MyService!&#8221;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--2\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/zp-400x300.jpg\" alt=\"&#40657;&#26495;Bug&#35762;&#24072;\" class=\"wp-image-1849\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#40657;&#26495;Bug&#35762;&#24072;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<body><h2>&#20171;&#32461;<\/h2><p>&#20381;&#36182;&#27880;&#20837;&#65288;Dependency Injection&#65292;&#31616;&#31216;DI&#65289;&#26159;&#19968;&#31181;&#35774;&#35745;&#27169;&#24335;&#65292;&#23427;&#20801;&#35768;&#19968;&#20010;&#31867;&#20174;&#22806;&#37096;&#33719;&#21462;&#20854;&#20381;&#36182;&#39033;&#65292;&#32780;&#19981;&#26159;&#33258;&#24049;&#21019;&#24314;&#23427;&#20204;&#12290;&#22312;Laravel&#26694;&#26550;&#20013;&#65292;&#25511;&#21046;&#22120;&#21487;&#20197;&#21463;&#30410;&#20110;&#20381;&#36182;&#27880;&#20837;&#65292;&#20174;&#32780;&#23454;&#29616;&#26356;&#21152;&#27169;&#22359;&#21270;&#12289;&#21487;&#27979;&#35797;&#21644;&#28789;&#27963;&#30340;&#20195;&#30721;&#12290;&#26412;&#25991;&#23558;&#25351;&#23548;&#24744;&#22914;&#20309;&#21521;&#24744;&#30340;Laravel&#25511;&#21046;&#22120;&#20013;&#27880;&#20837;&#20381;&#36182;&#39033;&#12290;<\/p><h2>&#29702;&#35299;&#20381;&#36182;&#27880;&#20837;&#65288;Dependency Injection, DI&#65289;<\/h2><p>&#22312;&#28145;&#20837;&#23454;&#26045;&#20043;&#21069;&#65292;&#35753;&#25105;&#20204;&#20808;&#28548;&#28165;&#19968;&#19979;&#20160;&#20040;&#26159;DI&#65288;&#20381;&#36182;&#27880;&#20837;&#65289;&#65292;&#36890;&#36807;&#19968;&#20010;&#31616;&#21333;&#30340;&#20363;&#23376;&#26469;&#35828;&#26126;&#12290;&#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010;&hellip;&hellip;<code>ReportGenerator<\/code>&#37027;&#38376;&#35838;&#31243;&#35201;&#27714;&#20160;&#20040;&#65311;<code>DatabaseConnection<\/code>&#29289;&#20307;&#12290;<\/p><pre><code>class ReportGenerator {\n    protected $dbConnection;\n\n    public function __construct(DatabaseConnection $dbConnection) {\n        $this-&gt;dbConnection = $dbConnection;\n    }\n\n    \/\/ Methods that use $dbConnection to generate reports\n}\n<\/code><\/pre><p>&#23545;&#19981;&#36215;&#65292;&#25105;&#27809;&#26126;&#30333;&#20320;&#30340;&#24847;&#24605;&#65292;&#35831;&#37325;&#26032;&#25551;&#36848;&#19968;&#19979;&#12290;<code>ReportGenerator<\/code>&#23427;&#19981;&#23454;&#20363;&#21270;&#12290;<code>DatabaseConnection<\/code>&#23427;&#34987;&#27880;&#20837;&#20854;&#20013;&#12290;&#36825;&#26159;&#20381;&#36182;&#27880;&#20837;&#30340;&#19968;&#20010;&#20363;&#23376;&#12290;<\/p><h2>&#36890;&#36807;&#26500;&#36896;&#20989;&#25968;&#27880;&#20837;<\/h2><p>&#26368;&#24120;&#35265;&#30340;Laravel&#20013;&#30340;DI&#26041;&#27861;&#26159;&#36890;&#36807;&#25511;&#21046;&#22120;&#30340;&#26500;&#36896;&#20989;&#25968;&#23454;&#29616;&#30340;&#12290;<\/p><pre><code>&lt;?php\n\nnamespace AppHttpControllers;\n\nuse AppServicesReportService;\n\nclass ReportController extends Controller {\n    protected $reportService;\n\n    public function __construct(ReportService $reportService) {\n        $this-&gt;reportService = $reportService;\n    }\n\n    public function generate() {\n        $report = $this-&gt;reportService-&gt;createReport();\n        return view('reports.generate', compact('report'));\n    }\n}\n<\/code><\/pre><p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;<code>ReportController<\/code>&#25910;&#21040;&#12290;<code>ReportService<\/code>&#36890;&#36807;&#26500;&#36896;&#20989;&#25968;&#23454;&#20363;&#21270;&#23427;&#12290;&#25105;&#20204;&#29616;&#22312;&#21487;&#20197;&#20351;&#29992;&#23427;&#20102;&#12290;<code>$this-&gt;ReportService<\/code>&#22312;&#25105;&#20204;&#29983;&#25104;&#25253;&#21578;&#30340;&#26041;&#27861;&#20013;&#12290;<\/p><h2>&#35299;&#20915;&#20381;&#36182;&#20851;&#31995;<\/h2><p>Laravel &#26381;&#21153;&#23481;&#22120;&#26159;&#31649;&#29702;&#31867;&#20381;&#36182;&#24182;&#25191;&#34892;&#20381;&#36182;&#27880;&#20837;&#30340;&#24037;&#20855;&#12290;&#23427;&#33258;&#21160;&#22788;&#29702;&#23454;&#20363;&#21270;&#21644;&#27880;&#20837;&#20381;&#36182;&#12290;&#22312;&#19978;&#36848;&#31034;&#20363;&#20013;&#65292;Laravel &#30340;&#26381;&#21153;&#23481;&#22120;&#20250;&#35299;&#26512;&#24182;&#27880;&#20837;&#12290;<code>ReportService<\/code>into the<code>ReportController<\/code>&#22909;&#30340;&#65292;&#35831;&#21457;&#36865;&#20320;&#38656;&#35201;&#32763;&#35793;&#30340;&#20869;&#23481;&#12290;<\/p><p>&#22312;&#23450;&#20041;&#26381;&#21153;&#26102;&#65292;&#20320;&#21487;&#20197;&#21033;&#29992;&#24212;&#29992;&#30340;&#26381;&#21153;&#25552;&#20379;&#32773;&#23558;&#31867;&#32465;&#23450;&#21040;&#26381;&#21153;&#23481;&#22120;&#20013;&#12290;&#36890;&#24120;&#65292;&#20320;&#22312;onCreate()&#26041;&#27861;&#20013;&#36827;&#34892;&#27492;&#25805;&#20316;&#12290;<code>register<\/code>&#26381;&#21153;&#25552;&#20379;&#21830;&#30340;&#26041;&#27861;&#12290;<\/p><pre><code>&lt;?php\n\nnamespace AppProviders;\n\nuse IlluminateSupportServiceProvider;\nuse AppServicesReportService;\n\ncla(ss AppServiceProvider extends ServiceProvider {\n    public function register() {\n        $this-&gt;app-&gt;bind(ReportService::class, function ($app) {\n            return new ReportService();\n        });\n    }\n}\n<\/code><\/pre><p>&#20320;&#29616;&#22312;&#24050;&#32463;&#25351;&#31034;&#20102;&#26381;&#21153;&#23481;&#22120;&#22914;&#20309;&#35299;&#20915;<code>ReportService<\/code>&#24403;&#20320;&#38656;&#35201;&#26102;&#12290;<\/p><h2>&#20381;&#36182;&#27880;&#20837;&#65288;Dependency Injection&#65292;DI&#65289;<\/h2><p>&#38500;&#20102;&#26500;&#36896;&#20989;&#25968;&#27880;&#20837;&#20043;&#22806;&#65292;Laravel &#36824;&#25903;&#25345;&#26041;&#27861;&#27880;&#20837;&#12290;&#36825;&#31181;&#26041;&#27861;&#23588;&#20854;&#22312;&#20381;&#36182;&#39033;&#20165;&#22312;&#26576;&#20123;&#25511;&#21046;&#22120;&#21160;&#20316;&#20013;&#20351;&#29992;&#26102;&#38750;&#24120;&#26377;&#29992;&#12290;<\/p><pre><code>public function showReport(ReportService $reportService, $reportId) {\n    $report = $reportService-&gt;getReport($reportId);\n    return view('reports.show', compact('report'));\n}\n<\/code><\/pre><p>&#23545;&#19981;&#36215;&#65292;&#25105;&#26410;&#33021;&#29702;&#35299;&#24744;&#30340;&#38382;&#39064;&#12290;&#22914;&#26524;&#24744;&#26377;&#20854;&#20182;&#38656;&#35201;&#24110;&#21161;&#30340;&#20869;&#23481;&#65292;&#35831;&#25552;&#20379;&#26356;&#22810;&#20449;&#24687;&#25110;&#37325;&#26032;&#25551;&#36848;&#24744;&#30340;&#38656;&#27714;&#12290;<code>ReportService<\/code>&#23454;&#20363;&#34987;&#30452;&#25509;&#27880;&#20837;&#21040;&#21160;&#20316;&#20013;&#12290;<code>showReport<\/code>&#35813;&#23454;&#20363;&#23558;&#22312;&#25191;&#34892;&#26102;&#33258;&#21160;&#35299;&#20915;&#24182;&#25552;&#20379;&#32473;&#21151;&#33021;&#12290;<\/p><h2>&#27880;&#20837;&#22810;&#20010;&#20381;&#36182;&#39033;<\/h2><p>&#25511;&#21046;&#22120;&#21487;&#33021;&#38656;&#35201;&#22810;&#20010;&#26381;&#21153;&#12290;Laravel &#21487;&#20197;&#26080;&#32541;&#22788;&#29702;&#36825;&#31181;&#24773;&#20917;&#12290;<\/p><pre><code>public function __construct(ReportService $reportService, LoggerService $logger) {\n    $this-&gt;reportService = $reportService;\n    $this-&gt;logger = $logger;\n}\n<\/code><\/pre><p>&#22312;&#36825;&#31181;&#24773;&#20917;&#19979;&#65292;&#20004;&#32773;&#37117;&hellip;&hellip;<code>ReportService<\/code>and &#26159;&#20013;&#25991;&#37324;&#30340;&ldquo;&#21644;&rdquo;&#65292;&#34920;&#31034;&#24182;&#21015;&#25110;&#32852;&#21512;&#30340;&#24847;&#24605;&#12290;<code>LoggerService<\/code>&#23427;&#20204;&#36890;&#36807;&#26500;&#36896;&#20989;&#25968;&#27880;&#20837;&#30340;&#12290;<\/p><h2>&#20351;&#29992;&#22522;&#20110;&#25509;&#21475;&#30340;&#27880;&#20837;<\/h2><p>Laravel &#20063;&#21487;&#20197;&#36890;&#36807;&#25509;&#21475;&#32465;&#23450;&#26469;&#35299;&#20915;&#20381;&#36182;&#38382;&#39064;&#12290;&#36825;&#25552;&#39640;&#20102;&#20195;&#30721;&#30340;&#28789;&#27963;&#24615;&#65292;&#20351;&#24471;&#20381;&#36182;&#30340;&#23454;&#29616;&#21487;&#20197;&#34987;&#26367;&#25442;&#32780;&#19981;&#20462;&#25913;&#28040;&#36153;&#31867;&#12290;<\/p><pre><code>interface ReportServiceInterface {\n    public function createReport();\n}\n\nclass SqlReportService implements ReportServiceInterface {\n    \/\/ Implementation of createReport\n}\n\n\/\/ Bind interface to implementation in a service provider\n$this-&gt;app-&gt;bind(ReportServiceInterface::class, SqlReportService::class);\n<\/code><\/pre><p>&#22312;&#25511;&#21046;&#22120;&#65306;<\/p><pre><code>public function __construct(ReportServiceInterface $reportService) {\n    $this-&gt;reportService = $reportService;\n}\n<\/code><\/pre><p>&#29616;&#22312; Laravel &#30340;&#23481;&#22120;&#23558;&#20250;&#27880;&#20837;&#19968;&#20010;&#23454;&#20363;&#12290;<code>SqlReportService<\/code>&#26080;&#35770;&#21738;&#37324;&#37117;&#21487;&#20197;&#12290;<code>ReportServiceInterface<\/code>&#31867;&#22411;&#25552;&#31034;&#12290;<\/p><h2>&#39640;&#32423;&#25216;&#26415;&#65306;&#19978;&#19979;&#25991;&#32465;&#23450;&#21644;&#26631;&#31614;<\/h2><p>Laravel &#25552;&#20379;&#20102;&#26356;&#39640;&#32423;&#30340;&#20381;&#36182;&#27880;&#20837;&#65288;DI&#65289;&#21151;&#33021;&#65292;&#20363;&#22914;&#19978;&#19979;&#25991;&#32465;&#23450;&#21644;&#26631;&#31614;&#65292;&#20801;&#35768;&#24744;&#20026;&#29305;&#23450;&#24773;&#20917;&#23450;&#20041;&#20855;&#20307;&#30340;&#23454;&#29616;&#65292;&#24182;&#36890;&#36807;&#26631;&#31614;&#26469;&#26631;&#35760;&#22810;&#20010;&#26381;&#21153;&#24182;&#20197;&#25968;&#32452;&#30340;&#24418;&#24335;&#36827;&#34892;&#35299;&#32806;&#12290;<\/p><pre><code>$this-&gt;app-&gt;when(PhotoController::class)\n  -&gt;needs(RepositoryInterface::class)\n  -&gt;give(PhotoRepository::class);\n\n$this-&gt;app-&gt;tag(['ReportService', 'LoggingService'], 'app.services');\n\n$services = $this-&gt;app-&gt;tagged('app.services');\n<\/code><\/pre><p>&#36825;&#20123;&#21151;&#33021;&#20351;&#24320;&#21457;&#20154;&#21592;&#33021;&#22815;&#26356;&#22909;&#22320;&#25511;&#21046;&#20854;&#26381;&#21153;&#26550;&#26500;&#65292;&#29305;&#21035;&#26159;&#23545;&#20110;&#22797;&#26434;&#30340;&#24212;&#29992;&#31243;&#24207;&#12290;<\/p><h2>&#32467;&#35770;&#12290;<\/h2><p>Laravel&#30340;DI&#31995;&#32479;&#25552;&#20379;&#20102;&#19968;&#31181;&#24378;&#22823;&#30340;&#12289;&#28789;&#27963;&#30340;&#26041;&#24335;&#26469;&#31649;&#29702;&#31867;&#20381;&#36182;&#20851;&#31995;&#12290;&#25484;&#25569;&#22312;Laravel&#20013;&#20351;&#29992;&#20381;&#36182;&#27880;&#20837;&#65292;&#21487;&#20197;&#20026;&#32534;&#20889;&#26356;&#21152;&#28165;&#27905;&#12289;&#21487;&#32500;&#25252;&#21644;&#27979;&#35797;&#30340;&#20195;&#30721;&#38138;&#24179;&#36947;&#36335;&#65292;&#36890;&#36807;&#23558;&#31867;&#19982;&#20854;&#20381;&#36182;&#39033;&#35299;&#32806;&#24182;&#20419;&#36827;&#20117;&#28982;&#26377;&#24207;&#30340;&#26381;&#21153;&#26550;&#26500;&#26469;&#23454;&#29616;&#36825;&#19968;&#30446;&#26631;&#12290;<\/p><\/body>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--3\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/xygcfznnzczhsdmwydzhsmzzzmddnq-400x300.jpg\" alt=\"&#38271;&#24037;&#30721;&#22900;1523\" class=\"wp-image-2906\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#38271;&#24037;&#30721;&#22900;1523<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#22312;Laravel&#26694;&#26550;&#20013;&#65292;&#20320;&#21487;&#20197;&#36890;&#36807;&#20197;&#19979;&#20960;&#31181;&#26041;&#24335;&#21521;&#25511;&#21046;&#22120;&#27880;&#20837;&#20381;&#36182;&#65306;<\/p>\n<ol>\n<li>\n<p><strong>&#20351;&#29992;&#20381;&#36182;&#27880;&#20837;&#23481;&#22120;&#65288;DI&#65289;<\/strong><\/p>\n<p>Laravel&#25552;&#20379;&#20102;&#19968;&#20010;&#21517;&#20026;<code>IlluminateSupportServiceProvider<\/code>&#30340;&#31867;&#65292;&#23427;&#20801;&#35768;&#20320;&#22312;&#24212;&#29992;&#30340;&#37197;&#32622;&#25991;&#20214;&#20013;&#27880;&#20876;&#26381;&#21153;&#25552;&#20379;&#21830;&#12290;&#26381;&#21153;&#25552;&#20379;&#32773;&#26159;&#20026;&#20102;&#35299;&#20915;&#20381;&#36182;&#27880;&#20837;&#38382;&#39064;&#32780;&#35774;&#35745;&#30340;&#12290;<\/p>\n<pre><code class=\"language-php\">\/\/ &#22312;config\/app.php &#25991;&#20214;&#20013;\n\n'providers' =&gt; [\n    IlluminateSupportServiceProvider::class,\n],<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#20351;&#29992;&#20381;&#36182;&#27880;&#20837;&#22120;&#65288;DI Container&#65289;<\/strong><\/p>\n<p>&#20320;&#20063;&#21487;&#20197;&#30452;&#25509;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#20381;&#36182;&#27880;&#20837;&#22120;&#65292;&#24182;&#23558;&#20320;&#30340;&#26381;&#21153;&#28155;&#21152;&#21040;&#20854;&#20013;&#12290;&#20363;&#22914;&#65292;&#22914;&#26524;&#20320;&#26377;&#19968;&#20010;&#21517;&#20026;<code>UserRepository<\/code>&#30340;&#26381;&#21153;&#65292;&#20320;&#21487;&#20197;&#36825;&#26679;&#25805;&#20316;&#65306;<\/p>\n<pre><code class=\"language-php\">class UserRepository extends RepositoryInterface\n{\n    protected $model = User::class;\n}<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#20351;&#29992; Lumen &#30340; <code>container()<\/code> &#26041;&#27861;<\/strong><\/p>\n<p>&#22914;&#26524;&#20320;&#27491;&#22312;&#24320;&#21457;&#19968;&#20010;&#22522;&#20110;Lumen&#30340;&#39033;&#30446;&#65292;&#37027;&#20040;&#21487;&#20197;&#20351;&#29992;<code>container()<\/code>&#26041;&#27861;&#26469;&#27880;&#20837;&#20381;&#36182;&#12290;&#36825;&#26159;&#19968;&#20010;&#26356;&#31616;&#27905;&#30340;&#26041;&#27861;&#65306;<\/p>\n<pre><code class=\"language-php\">public function boot()\n{\n    $this-&gt;app-&gt;make('container');\n}<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#22312;&#25511;&#21046;&#22120;&#20013;&#27880;&#20837;&#20381;&#36182;<\/strong><\/p>\n<p>&#22312;&#25511;&#21046;&#22120;&#30340;&#26500;&#36896;&#20989;&#25968;&#20013;&#65292;&#20320;&#21487;&#20197;&#27880;&#20837;&#38656;&#35201;&#30340;&#20381;&#36182;&#65306;<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\nnamespace AppHttpControllers;\n\nuse AppModelsUser;\nuse IlluminateContractsAuthAuthenticatable;\n\nclass UserController extends Controller\n{\n    \/**\n     * @var Authenticatable\n     *\/\n    private $authModel;\n\n    public function __construct(Authenticatable $authModel)\n    {\n        $this-&gt;authModel = $authModel;\n    }\n\n    public function index()\n    {\n        return view('welcome', ['users' =&gt; $this-&gt;authModel-&gt;all()]);\n    }\n}<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#20351;&#29992; <code>make()<\/code> &#26041;&#27861;<\/strong><\/p>\n<p>Laravel&#36824;&#25552;&#20379;&#20102;<code>make()<\/code>&#26041;&#27861;&#65292;&#23427;&#21487;&#20197;&#29992;&#26469;&#21019;&#24314;&#26032;&#30340;&#27169;&#22411;&#21644;&#25511;&#21046;&#22120;&#31561;&#12290;&#36825;&#20010;&#26041;&#27861;&#25509;&#21463;&#19968;&#31995;&#21015;&#21442;&#25968;&#65292;&#21253;&#25324;&#20381;&#36182;&#39033;&#12290;<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\nnamespace AppHttpControllers;\n\nuse AppHttpRequestsCreateUserControllerRequest;\nuse AppModelsUser;\nuse IlluminateFoundationBusDispatchesJobs;\nuse IlluminateRoutingController as BaseController;\nuse IlluminateFoundationValidationValidatesRequests;\nuse IlluminateFoundationAuthAccessAuthorizesRequests;\n\nabstract class Controller extends BaseController\n{\n    use AuthorizesRequests, DispatchesJobs, ValidatesRequests;\n\n    protected $authModel;\n\n    public function __construct(User $authModel)\n    {\n        $this-&gt;authModel = $authModel;\n    }\n\n    abstract public function index();\n}\n\nclass UserController extends Controller\n{\n    protected $authModel;\n\n    public function __construct(User $authModel)\n    {\n        $this-&gt;authModel = $authModel;\n    }\n\n    public function index()\n    {\n        return view('welcome', ['users' =&gt; $this-&gt;authModel-&gt;all()]);\n    }\n}<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#22312;&#36335;&#30001;&#20013;&#27880;&#20837;&#20381;&#36182;<\/strong><\/p>\n<p>&#22312;&#36335;&#30001;&#30340;&#23450;&#20041;&#20013;&#65292;&#20320;&#20063;&#21487;&#20197;&#27880;&#20837;&#20381;&#36182;&#65306;<\/p>\n<pre><code class=\"language-php\">Route::get('\/users', [UserController::class, 'index']);<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#20351;&#29992;&#24037;&#21378;&#27169;&#24335;<\/strong><\/p>\n<p>Laravel&#20063;&#25903;&#25345;&#24037;&#21378;&#27169;&#24335;&#65292;&#36825;&#26159;&#19968;&#31181;&#26500;&#24314;&#23545;&#35937;&#30340;&#26041;&#24335;&#65292;&#21487;&#20197;&#35753;&#20320;&#33258;&#23450;&#20041;&#23545;&#35937;&#30340;&#34892;&#20026;&#12290;<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\nnamespace AppHttpControllers;\n\nuse AppModelsUser;\nuse AppFactoriesFactoryFactory;\nuse IlluminateContractsAuthAuthenticatable;\n\nclass UserController extends Controller\n{\n    protected $authModel;\n\n    public function __construct(FactoryFactory $factory)\n    {\n        $this-&gt;authModel = $factory-&gt;create(User::class);\n    }\n\n    public function index()\n    {\n        return view('welcome', ['users' =&gt; $this-&gt;authModel-&gt;all()]);\n    }\n}<\/code><\/pre>\n<\/li>\n<\/ol>\n<p>&#20197;&#19978;&#23601;&#26159;&#22312;Laravel&#20013;&#21521;&#25511;&#21046;&#22120;&#27880;&#20837;&#20381;&#36182;&#30340;&#19968;&#20123;&#24120;&#29992;&#26041;&#27861;&#12290;&#26681;&#25454;&#20320;&#30340;&#38656;&#27714;&#36873;&#25321;&#21512;&#36866;&#30340;&#26041;&#24335;&#26469;&#23454;&#29616;&#20381;&#36182;&#27880;&#20837;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#22312; Laravel &#20013;&#65292;&#21521;&#25511;&#21046;&#22120;&#27880;&#20837;&#20381;&#36182;&#21487;&#20197;&#36890;&#36807;&#038;#2..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[44],"tuisongtax":[],"class_list":["post-808","my1js","type-my1js","status-publish","hentry","my1js2nav-laravel"],"acf":{"qian_art_seotitle":"","qian_art_seotitle_source":{"label":"SEO\u6807\u9898","type":"text","formatted_value":""},"qian_art_seokws":"","qian_art_seokws_source":{"label":"SEO\u5173\u952e\u8bcd","type":"text","formatted_value":""},"qian_art_stzhong":"","qian_art_stzhong_source":{"label":"\u4e2d | \u77ed\u6807\u9898","type":"text","formatted_value":""}},"_links":{"self":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js\/808","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js"}],"about":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/types\/my1js"}],"author":[{"embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/users\/1"}],"wp:attachment":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/media?parent=808"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=808"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=808"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=808"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}