목차
컨트롤러 소개
기본 컨트롤러
控制器中间件
资源型控制器
部分资源路由" >部分资源路由
嵌套资源
命名资源路由
命名资源路由参数
限定范围的资源路由
本地化资源 URI" >本地化资源 URI
补充资源控制器
依赖注入 & 控制器
路由缓存" >路由缓存
PHP 프레임워크 Laravel 라라벨 컨트롤러란?

라라벨 컨트롤러란?

Jan 14, 2023 am 11:16 AM
php laravel 제어 장치

laravel에서 컨트롤러(Controller)는 특정 기능을 구현하는 데 사용되는 클래스입니다. 컨트롤러는 관련 요청 처리 로직을 별도의 클래스로 결합할 수 있습니다. 일부 메서드는 특정 기능을 구현하기 위해 컨트롤러에 저장되며, 컨트롤러는 라우팅을 통해 호출되며, 컨트롤러는 더 이상 "app/Http/Controllers" 디렉터리에 저장됩니다.

라라벨 컨트롤러란?

이 튜토리얼의 운영 환경: Windows 7 시스템, Laravel 6 버전, DELL G3 컴퓨터.

컨트롤러 소개

1. 컨트롤러란?

라우팅 파일에서 클로저 형식으로 정의된 모든 요청 처리 로직을 대체하려면 컨트롤 클래스를 사용하여 이러한 동작을 구성할 수 있습니다. 컨트롤러는 관련 요청 처리 논리를 별도의 클래스로 그룹화할 수 있습니다.

Controller는 특정 기능을 구현하는 데 사용되는 클래스입니다. 일부 메서드는 특정 기능을 구현하기 위해 컨트롤러에 저장되며, 컨트롤러는 라우팅을 통해 호출되며, 콜백 함수는 더 이상 사용되지 않습니다.

2. 컨트롤러는 어디에 쓰여 있나요?

App/Http/Controller는 컨트롤러를 배치합니다.

Controller.php는 상위 클래스 파일이고, 다른 컨트롤러는 상속할 수 있습니다.

3. 컨트롤러 파일 이름은 어떻게 지정합니까?

Hump-hump 컨트롤러 이름 + Controller.php

예: AddDataController.php LoginController.php

4. 컨트롤러 구조는 어떻게 작성하나요?

artisan 명령을 통해 자동으로 생성됩니다. 예: 현재 프로젝트의 루트 디렉터리에서 명령줄 입력:

php artisan make:controller TestController
로그인 후 복사

구조 코드 자동 완성,

   namespace App\Http\Controller;
   use Illuminate\Http\Request;    
   class TestController extends  Controller{
     //
   }
로그인 후 복사

기본 컨트롤러

컨트롤러 정의

아래는 기본 컨트롤러 클래스의 예입니다. 이 컨트롤러는 Laravel의 기본 컨트롤러를 상속한다는 점에 유의하세요. 이 컨트롤러 클래스는 컨트롤러 동작에 미들웨어를 추가할 수 있는 middleware 메서드와 같은 몇 가지 편리한 메서드를 제공합니다. Laravel 的基础控制器。该类控制器提供了一些便利的方法,比如 middleware 方法,该方法可以为控制器行为添加中间件:

<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use App\Models\User;

class UserController extends Controller
{
    /**
     * 显示指定用户的简介
     *
     * @param  int  $id
     * @return \Illuminate\View\View
     */
    public function show($id)
    {
        return view(&#39;user.profile&#39;, [&#39;user&#39; => User::findOrFail($id)]);
    }
}
로그인 후 복사

你可以像这样定义一个指向控制器行为的路由:

use App\Http\Controllers\UserController;

Route::get(&#39;user/{id}&#39;, [UserController::class, &#39;show&#39;]);
로그인 후 복사

当一个请求与指定路由的 URI 匹配时, UserController 控制器中的 show 方法将会执行。路由参数也将会被传递给该方法。

技巧:控制器并不是 必需 继承基础类。如果控制器没有继承基础类,你将无法使用一些便捷的功能,比如 middlewarevalidate,和 dispatch 方法。

单行为控制器

如果你想要定义一个只处理单个行为的控制器,你可以在控制器中放置一个 __invoke 方法:

<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use App\Models\User;

class ShowProfile extends Controller
{
    /**
     * 显示指定用户的简介
     *
     * @param  int  $id
     * @return \Illuminate\View\View
     */
    public function __invoke($id)
    {
        return view(&#39;user.profile&#39;, [&#39;user&#39; => User::findOrFail($id)]);
    }
}
로그인 후 복사

当注册单个行为控制器的路由时不需要指名方法:

use App\Http\Controllers\ShowProfile;

Route::get(&#39;user/{id}&#39;, ShowProfile::class);
로그인 후 복사

你可以通过 Artisan 命令工具里的 make:controller 命令中的 --invokable 选项来生成一个可调用的控制器

php artisan make:controller ShowProfile --invokable
로그인 후 복사

技巧:可以使用 stub 定制 自定义控制器模板

控制器中间件

中间件 可以在路由文件中分配给控制器的路由:

Route::get(&#39;profile&#39;, [UserController::class, &#39;show&#39;])->middleware(&#39;auth&#39;);
로그인 후 복사

然而,在控制器的构造函数中指定中间件更为方便。使用控制器构造函数中的 middleware 方法,可以轻松地将中间件分配给控制器。你甚至可以将中间件限制为只在控制器中的某些方法生效:

class UserController extends Controller
{
    /**
     * 实例化一个新的控制器实例
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware(&#39;auth&#39;);

        $this->middleware(&#39;log&#39;)->only(&#39;index&#39;);

        $this->middleware(&#39;subscribed&#39;)->except(&#39;store&#39;);
    }
}
로그인 후 복사

同时,控制器还允许你使用一个闭包来注册中间件。这为不定义整个中间件类的情况下为单个控制器定义中间件提供了一种便捷的方法:

$this->middleware(function ($request, $next) {
    // ...

    return $next($request);
});
로그인 후 복사

技巧:你可以将中间件分配给控制器操作的一个子集。然而,它可能表明你的控制器正在变得复杂。建议你将控制器拆分为多个较小的控制器。

资源型控制器

Laravel 的资源路由通过单行代码即可将典型的「CURD (增删改查)」路由分配给控制器。例如,你希望创建一个控制器来处理保存 “照片” 应用的所有 HTTP 请求。使用 Artisan 命令 make:controller 可以快速创建这样一个控制器:

php artisan make:controller PhotoController --resource
로그인 후 복사

这个命令将会生成一个控制器 app/Http/Controllers/PhotoController.php。 其中包括每个可用资源操作的方法。

接下来,你可以给控制器注册一个资源路由:

Route::resource(&#39;photos&#39;, PhotoController::class);
로그인 후 복사

这个单一的路由声明创建了多个路由来处理资源上的各种行为。生成的控制器为每个行为保留了方法,包括了关于处理 HTTP 动词和 URLs 的声明注释。

你可以通过将数组传参到 resources

Route::resources([
    &#39;photos&#39; => PhotoController::class,
    &#39;posts&#39; => PostController::class,
]);
로그인 후 복사

다음과 같이 컨트롤러 동작을 가리키는 경로를 정의할 수 있습니다.

php artisan make:controller PhotoController --resource --model=Photo
로그인 후 복사
로그인 후 복사
요청이 지정된 경로의 URI와 일치하면 UserController 컨트롤러의 show 메서드가 실행됩니다. 경로 매개변수도 이 메소드에 전달됩니다.

팁: 컨트롤러는 기본 클래스에서 상속하는 데 🎜필수🎜는 아닙니다. 컨트롤러가 기본 클래스에서 상속되지 않으면 미들웨어, 유효성 검사, 디스패치와 같은 일부 편의 기능을 사용할 수 없습니다. 코드> 메소드. 🎜🎜🎜🎜단일 동작 컨트롤러🎜🎜🎜🎜단일 동작만 처리하는 컨트롤러를 정의하려면 컨트롤러에 __invoke 메서드를 배치하면 됩니다. 🎜
Route::resource(&#39;photos&#39;, PhotoController::class)->only([
    &#39;index&#39;, &#39;show&#39;
]);

Route::resource(&#39;photos&#39;, PhotoController::class)->except([
    &#39;create&#39;, &#39;store&#39;, &#39;update&#39;, &#39;destroy&#39;
]);
로그인 후 복사
로그인 후 복사
🎜단일 동작을 등록할 때 동작 컨트롤러를 라우팅할 때 메서드를 지정할 필요가 없습니다. 🎜
Route::apiResource(&#39;photos&#39;, PhotoController::class);
로그인 후 복사
로그인 후 복사
🎜다음의 make:controller 명령에서 --invokable 옵션을 통해 호출 가능한 메서드를 생성할 수 있습니다. Artisan 명령 도구 컨트롤러 🎜
Route::apiResources([
    &#39;photos&#39; => PhotoController::class,
    &#39;posts&#39; => PostController::class,
]);
로그인 후 복사
로그인 후 복사
🎜🎜 팁: 스텁 사용자 정의를 사용하여 컨트롤러 템플릿을 사용자 정의할 수 있습니다🎜🎜🎜🎜 컨트롤러 중간에 🎜🎜🎜미들웨어를 경로 파일의 컨트롤러 경로에 할당할 수 있습니다: 🎜
php artisan make:controller API/PhotoController --api
로그인 후 복사
로그인 후 복사
🎜 하지만 컨트롤러에서는 생성자에서 미들웨어를 지정하는 것이 더 편리합니다. 컨트롤러 생성자의 middleware 메서드를 사용하여 미들웨어를 컨트롤러에 쉽게 할당할 수 있습니다. 컨트롤러의 특정 메서드에만 적용되도록 미들웨어를 제한할 수도 있습니다. 🎜
Route::resource(&#39;photos.comments&#39;, PhotoCommentController::class);
로그인 후 복사
로그인 후 복사
🎜 동시에 컨트롤러에서는 클로저를 사용하여 미들웨어를 등록할 수도 있습니다. 이는 전체 미들웨어 클래스를 정의하지 않고 단일 컨트롤러에 대한 미들웨어를 정의하는 편리한 방법을 제공합니다. 🎜
/photos/{photo}/comments/{comment}
로그인 후 복사
로그인 후 복사
🎜🎜 팁: 컨트롤러 작업의 하위 집합에 미들웨어를 할당할 수 있습니다. 그러나 이는 컨트롤러가 복잡해지고 있다는 신호일 수 있습니다. 컨트롤러를 여러 개의 작은 컨트롤러로 분할하는 것이 좋습니다. 🎜🎜🎜🎜Resource Controller🎜🎜🎜🎜Laravel의 리소스 라우팅은 한 줄의 코드를 사용하여 일반적인 "CURD(생성, 삭제, 수정)" 경로를 컨트롤러에 할당할 수 있습니다. 예를 들어, Save Photos 앱에 대한 모든 HTTP 요청을 처리하는 컨트롤러를 생성하려고 합니다. Artisan 명령어 make:controller를 사용하여 이러한 컨트롤러를 빠르게 생성하세요. 🎜
Route::resource(&#39;photos.comments&#39;, PhotoCommentController::class)->scoped([
    &#39;comment&#39; => &#39;slug&#39;,
]);
로그인 후 복사
로그인 후 복사
🎜이 명령어는 컨트롤러 app/Http/Controllers/PhotoController.php를 생성합니다. 여기에는 사용 가능한 각 리소스 작업에 대한 메서드가 포함됩니다. 🎜🎜다음으로 컨트롤러에 리소스 경로를 등록할 수 있습니다. 🎜
/photos/{photo}/comments/{comment:slug}
로그인 후 복사
로그인 후 복사
🎜이 단일 경로 선언은 리소스의 다양한 동작을 처리하기 위해 여러 경로를 생성합니다. 생성된 컨트롤러는 HTTP 동사 및 URL을 처리하기 위한 선언적 주석을 포함하여 각 작업에 대한 메서드를 유지합니다. 🎜🎜배열 매개변수를 resources 메서드에 전달하여 한 번에 여러 리소스 컨트롤러를 생성할 수 있습니다. 🎜
Route::resource(&#39;photos.comments&#39;, CommentController::class)->shallow();
로그인 후 복사
로그인 후 복사
🎜🎜리소스 컨트롤러 작업 처리🎜🎜🎜
VerbURIActionRoute Name
GET/photosindexphotos.index
GET/photos/createcreatephotos.create
POST/photosstorephotos.store
GET/photos/{photo}showphotos.show
GET/photos/{photo}/editeditphotos.edit
PUT/PATCH/photos/{photo}updatephotos.update
DELETE/photos/{photo}destroyphotos.destroy

指定资源模型

如果你使用了路由模型绑定,并且想在资源控制器的方法中使用类型提示,你可以在生成控制器的时候使用 --model 选项:

php artisan make:controller PhotoController --resource --model=Photo
로그인 후 복사
로그인 후 복사

当声明资源路由时,你可以指定控制器处理的部分行为,而不是所有默认的行为:

Route::resource(&#39;photos&#39;, PhotoController::class)->only([
    &#39;index&#39;, &#39;show&#39;
]);

Route::resource(&#39;photos&#39;, PhotoController::class)->except([
    &#39;create&#39;, &#39;store&#39;, &#39;update&#39;, &#39;destroy&#39;
]);
로그인 후 복사
로그인 후 복사

API 资源路由

当声明用于 APIs 的资源路由时,通常需要排除显示 HTML 模板的路由(如 createedit )。为了方便起见,你可以使用 apiResource 方法自动排除这两个路由:

Route::apiResource(&#39;photos&#39;, PhotoController::class);
로그인 후 복사
로그인 후 복사

你也可以传递一个数组给 apiResources 方法来同时注册多个 API 资源控制器:

Route::apiResources([
    &#39;photos&#39; => PhotoController::class,
    &#39;posts&#39; => PostController::class,
]);
로그인 후 복사
로그인 후 복사

要快速生成不包含 createedit 方法的用于开发接口的资源控制器,请在执行 make:controller 命令时使用 --api 参数:

php artisan make:controller API/PhotoController --api
로그인 후 복사
로그인 후 복사

嵌套资源

有时可能需要定义一个嵌套的资源型路由。例如,照片资源可能被添加了多个评论。那么可以在路由中使用 “点” 符号来声明资源型控制器:

Route::resource(&#39;photos.comments&#39;, PhotoCommentController::class);
로그인 후 복사
로그인 후 복사

该路由会注册一个嵌套资源,可以使用如下 URI 访问:

/photos/{photo}/comments/{comment}
로그인 후 복사
로그인 후 복사

限定嵌套资源的范围

Laravel 的 隐式模型绑定 特性可以自动限定嵌套绑定的范围,因此已解析的子模型会自动属于父模型。定义嵌套路由时,使用 scoped 方法,可以开启自动范围限定,也可以指定 Laravel 应该按照哪个字段检索子模型资源

Route::resource(&#39;photos.comments&#39;, PhotoCommentController::class)->scoped([
    &#39;comment&#39; => &#39;slug&#39;,
]);
로그인 후 복사
로그인 후 복사

这个路由会注册一个限定范围的嵌套资源路由,可以像下面这样来访问:

/photos/{photo}/comments/{comment:slug}
로그인 후 복사
로그인 후 복사

浅层嵌套

通常,并不完全需要在 URI 中同时拥有父 ID 和子 ID ,因为子 ID 已经是唯一的标识符。当使用唯一标识符(如自动递增的主键)来标识 URI 中的模型时,可以选择使用「浅嵌套」的方式定义路由:

Route::resource(&#39;photos.comments&#39;, CommentController::class)->shallow();
로그인 후 복사
로그인 후 복사

上面的路由定义方式会定义以下路由:

HTTP 方式URI行为路由名称
GET/photos/{photo}/commentsindexphotos.comments.index
GET/photos/{photo}/comments/createcreatephotos.comments.create
POST/photos/{photo}/commentsstorephotos.comments.store
GET/comments/{comment}showcomments.show
GET/comments/{comment}/editeditcomments.edit
PUT/PATCH/comments/{comment}updatecomments.update
DELETE/comments/{comment}destroycomments.destroy

命名资源路由

默认情况下,所有的资源控制器行为都有一个路由名称。你可以传入 names 数组来覆盖这些名称:

Route::resource(&#39;photos&#39;, PhotoController::class)->names([
    &#39;create&#39; => &#39;photos.build&#39;
]);
로그인 후 복사

命名资源路由参数

默认情况下,Route::resource 会根据资源名称的「单数」形式创建资源路由的路由参数。你可以在选项数组中传入 parameters 参数来轻松地覆盖每个资源。parameters 数组应该是资源名称和参数名称的关联数组:

Route::resource(&#39;users&#39;, AdminUserController::class)->parameters([
    &#39;users&#39; => &#39;admin_user&#39;
]);
로그인 후 복사

上例将会为资源的 show 路由生成如下的 URI :

/users/{admin_user}
로그인 후 복사

限定范围的资源路由

有时,在定义资源路由时隐式绑定了多个 Eloquent 模型,你希望限定第二个 Eloquent 模型必须为第一个 Eloquent 模型的子模型。例如,考虑这样一个场景,通过 slug 检索某个特殊用户的一篇文章:

use App\Http\Controllers\PostsController;Route::resource(&#39;users.posts&#39;, PostsController::class)->scoped();
로그인 후 복사

你可以通过给 scoped 方法传递一个数组来覆盖默认的模型路由键:

use App\Http\Controllers\PostsController;Route::resource(&#39;users.posts&#39;, PostsController::class)->scoped([
    &#39;post&#39; => &#39;slug&#39;,
]);
로그인 후 복사

当使用一个自定义键的隐式绑定作为嵌套路由参数时,Laravel 会自动限定查询范围,按照约定的命名方式去父类中查找关联方法,然后检索到对应的嵌套模型。在这种情况下,将假定 User 模型有一个叫 posts(路由参数名的复数)的关联方法,通过这个方法可以检索到 Post 模型。

默认情况下,Route::resource 将会用英文动词创建资源 URI。如果需要自定义 createedit 行为的动作名,可以在 AppServiceProviderboot 中使用 Route::resourceVerbs 方法实现:

use Illuminate\Support\Facades\Route;

/**
 * 引导任何应用服务。
 *
 * @return void
 */
public function boot()
{
    Route::resourceVerbs([
        &#39;create&#39; => &#39;crear&#39;,
        &#39;edit&#39; => &#39;editar&#39;,
    ]);
}
로그인 후 복사

动作被自定义后,像 Route::resource(&#39;fotos&#39;, &#39;PhotoController&#39;) 这样注册的资源路由将会产生如下的 URI:

/fotos/crear

/fotos/{foto}/editar
로그인 후 복사

补充资源控制器

如果您需要增加额外的路由到默认的资源路由之中,您需要在 Route::resource 前定义它们;否则, resource 方法定义的路由可能会无意间优先于您定义的路由:

Route::get('photos/popular', [PhotoController::class, 'popular']);

Route::resource(&#39;photos&#39;, PhotoController::class);
로그인 후 복사

技巧:记得保持您的控制器的专一性。如果您需要典型的资源操作以外的方法,请考虑将您的控制器分割为两个更小的控制器。

依赖注入 & 控制器

构造注入

Laravel 服务容器 被用于解析所有的 Laravel 控制器。因此,您可以在控制器的构造函数中使用类型提示需要的依赖项。声明的解析会自动解析并注入到控制器实例中去:

<?php

namespace App\Http\Controllers;

use App\Repositories\UserRepository;

class UserController extends Controller
{
    /**
     * 用户 repository 实例。
     */
    protected $users;

    /**
     * 创建一个新的控制器实例。
     *
     * @param  UserRepository  $users
     * @return void
     */
    public function __construct(UserRepository $users)
    {
        $this->users = $users;
    }
}
로그인 후 복사

您亦可类型提示 Laravel 契约 ,只要它能够被解析。取决于您的应用,注入依赖到控制器可能会提供更好的可测试性。

方法注入

除了构造器注入以外,您亦可在控制器方法中类型提示依赖。最常见的用法便是注入 Illuminate\Http\Request 到您的控制器方法中:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller
{
    /**
     * 保存一个新用户。
     *
     * @param  Request  $request
     * @return Response
     */
    public function store(Request $request)
    {
        $name = $request->name;

        //
    }
}
로그인 후 복사

如果您的控制器方法要从路由参数中获取输入内容,请在您的依赖项之后列出您的路由参数。例如,您可以像下方这样定义路由:

Route::put(&#39;user/{id}&#39;, [UserController::class, &#39;update&#39;]);
로그인 후 복사

如下所示,您依然可以类型提示 Illuminate\Http\Request 并通过定义您的控制器方法访问 id 参数:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller
{
    /**
     * 修改指定的用户。
     *
     * @param  Request  $request
     * @param  string  $id
     * @return Response
     */
    public function update(Request $request, $id)
    {
        //
    }
}
로그인 후 복사

如果您的应用仅使用了基于路由的控制器,您应该充分利用 Laravel 路由缓存。使用路由缓存将会大幅降低您的应用路由的注册时间。有时,您的路由注册的速度可能会提高 100 倍。要生成路由缓存,仅需执行 route:cache Artisan 命令:

php artisan route:cache
로그인 후 복사

在运行该命令后,每次请求将会加载您缓存的路由文件。请记住,您每次添加新路由后均需要生成新的路由缓存。因此,您应该在项目部署时才运行 route:cache 命令。

您亦可使用 route:clear 来清除路由缓存:

php artisan route:clear
로그인 후 복사

【相关推荐:laravel视频教程

위 내용은 라라벨 컨트롤러란?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Dec 24, 2024 pm 04:42 PM

PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 Dec 20, 2024 am 11:31 AM

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는

PHP에서 HTML/XML을 어떻게 구문 분석하고 처리합니까? PHP에서 HTML/XML을 어떻게 구문 분석하고 처리합니까? Feb 07, 2025 am 11:57 AM

이 튜토리얼은 PHP를 사용하여 XML 문서를 효율적으로 처리하는 방법을 보여줍니다. XML (Extensible Markup Language)은 인간의 가독성과 기계 구문 분석을 위해 설계된 다목적 텍스트 기반 마크 업 언어입니다. 일반적으로 데이터 저장 AN에 사용됩니다

JWT (JSON Web Tokens) 및 PHP API의 사용 사례를 설명하십시오. JWT (JSON Web Tokens) 및 PHP API의 사용 사례를 설명하십시오. Apr 05, 2025 am 12:04 AM

JWT는 주로 신분증 인증 및 정보 교환을 위해 당사자간에 정보를 안전하게 전송하는 데 사용되는 JSON을 기반으로 한 개방형 표준입니다. 1. JWT는 헤더, 페이로드 및 서명의 세 부분으로 구성됩니다. 2. JWT의 작업 원칙에는 세 가지 단계가 포함됩니다. JWT 생성, JWT 확인 및 Parsing Payload. 3. PHP에서 인증에 JWT를 사용하면 JWT를 생성하고 확인할 수 있으며 사용자 역할 및 권한 정보가 고급 사용에 포함될 수 있습니다. 4. 일반적인 오류에는 서명 검증 실패, 토큰 만료 및 대형 페이로드가 포함됩니다. 디버깅 기술에는 디버깅 도구 및 로깅 사용이 포함됩니다. 5. 성능 최적화 및 모범 사례에는 적절한 시그니처 알고리즘 사용, 타당성 기간 설정 합리적,

문자열로 모음을 계산하는 PHP 프로그램 문자열로 모음을 계산하는 PHP 프로그램 Feb 07, 2025 pm 12:12 PM

문자열은 문자, 숫자 및 기호를 포함하여 일련의 문자입니다. 이 튜토리얼은 다른 방법을 사용하여 PHP의 주어진 문자열의 모음 수를 계산하는 방법을 배웁니다. 영어의 모음은 A, E, I, O, U이며 대문자 또는 소문자 일 수 있습니다. 모음이란 무엇입니까? 모음은 특정 발음을 나타내는 알파벳 문자입니다. 대문자와 소문자를 포함하여 영어에는 5 개의 모음이 있습니다. a, e, i, o, u 예 1 입력 : String = "Tutorialspoint" 출력 : 6 설명하다 문자열의 "Tutorialspoint"의 모음은 u, o, i, a, o, i입니다. 총 6 개의 위안이 있습니다

이전에 몰랐던 후회되는 PHP 함수 7가지 이전에 몰랐던 후회되는 PHP 함수 7가지 Nov 13, 2024 am 09:42 AM

숙련된 PHP 개발자라면 이미 그런 일을 해왔다는 느낌을 받을 것입니다. 귀하는 상당한 수의 애플리케이션을 개발하고, 수백만 줄의 코드를 디버깅하고, 여러 스크립트를 수정하여 작업을 수행했습니다.

PHP에서 늦은 정적 결합을 설명하십시오 (정적 : :). PHP에서 늦은 정적 결합을 설명하십시오 (정적 : :). Apr 03, 2025 am 12:04 AM

정적 바인딩 (정적 : :)는 PHP에서 늦은 정적 바인딩 (LSB)을 구현하여 클래스를 정의하는 대신 정적 컨텍스트에서 호출 클래스를 참조 할 수 있습니다. 1) 구문 분석 프로세스는 런타임에 수행됩니다. 2) 상속 관계에서 통화 클래스를 찾아보십시오. 3) 성능 오버 헤드를 가져올 수 있습니다.

php magic 방법 (__construct, __destruct, __call, __get, __set 등)이란 무엇이며 사용 사례를 제공합니까? php magic 방법 (__construct, __destruct, __call, __get, __set 등)이란 무엇이며 사용 사례를 제공합니까? Apr 03, 2025 am 12:03 AM

PHP의 마법 방법은 무엇입니까? PHP의 마법 방법은 다음과 같습니다. 1. \ _ \ _ Construct, 객체를 초기화하는 데 사용됩니다. 2. \ _ \ _ 파괴, 자원을 정리하는 데 사용됩니다. 3. \ _ \ _ 호출, 존재하지 않는 메소드 호출을 처리하십시오. 4. \ _ \ _ get, 동적 속성 액세스를 구현하십시오. 5. \ _ \ _ Set, 동적 속성 설정을 구현하십시오. 이러한 방법은 특정 상황에서 자동으로 호출되어 코드 유연성과 효율성을 향상시킵니다.

See all articles