Heim >Backend-Entwicklung >PHP-Problem >Bringen Sie Ihnen Schritt für Schritt bei, wie Sie mit PHP Front-End und Back-End trennen

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie mit PHP Front-End und Back-End trennen

PHPz
PHPzOriginal
2023-04-03 15:14:553153Durchsuche

In der Webentwicklung ist die Trennung von Front-End und Backend zu einem Trend geworden. Das Front-End ist hauptsächlich für die Anzeige von Daten und die Benutzerinteraktion verantwortlich, während das Back-End für die Datenverarbeitung und die Implementierung der Geschäftslogik verantwortlich ist. Daher implementiert das Backend die API-Schnittstelle und das Front-End erhält Daten durch Aufrufen der Schnittstelle. Es ist unumgänglich geworden, das Front-End und das Back-End vollständig zu trennen. In diesem Artikel wird erläutert, wie Sie die Front-End- und Back-End-Trennung von PHP erreichen.

  1. Aufbau der Backend-API-Schnittstelle

Als serverseitige Skriptsprache bietet PHP eine bessere Leistung und Datensicherheit als JavaScript, sodass wir beim Aufbau der Backend-API-Schnittstelle PHP zur Implementierung verwenden können. Beispielsweise können wir PHP-Frameworks wie Laravel, Yii, CodeIgniter usw. verwenden, um schnell Backend-API-Schnittstellen zu erstellen. Diese Frameworks können problemlos Routing, Modelle, Controller, Datenbankoperationen usw. durchführen.

  1. Controller implementiert API-Schnittstellenlogik

Nachdem wir die API-Schnittstelle erstellt haben, müssen wir den entsprechenden Controller schreiben, um Front-End-Anfragen zu verarbeiten. Beispielsweise können wir einen UserController implementieren, um Benutzerregistrierung, Anmeldung und andere Anfragen zu verarbeiten. Das Codebeispiel lautet wie folgt:

class UserController extends BaseController
{
    // 注册
    public function register()
    {
        // 获取前端传递的参数
        $username = Input::get('username');
        $password = Input::get('password');

        // 插入数据库逻辑
        User::create(['username' => $username, 'password' => $password]);

        // 返回注册成功响应
        return Response::json(['result' => 'success']);
    }

    // 登录
    public function login()
    {
        // 获取前端传递的参数
        $username = Input::get('username');
        $password = Input::get('password');

        // 数据库验证逻辑
        $user = User::where('username', $username)->where('password', $password)->first();

        if ($user) {
            // 登录成功
            return Response::json(['result' => 'success']);
        } else {
            // 登录失败
            return Response::json(['result' => 'error']);
        }
    }
}
  1. Domänenübergreifende Zugriffsverarbeitung

Aufgrund der Implementierung der Front-End- und Back-End-Trennung befinden sich Front-End und Back-End nicht unter demselben Domänennamen Es liegt ein domänenübergreifendes Problem vor. Wir können CORS (Cross Origin Resource Sharing, domänenübergreifende Ressourcenfreigabe) verwenden, um domänenübergreifende Probleme zu lösen. Im Laravel-Framework können wir CORS-Einstellungen über Middleware implementieren und die Domänennamen angeben, die domänenübergreifende Anforderungen zulassen, indem wir Access-Control-Allow-Origin festlegen. Der Beispielcode lautet wie folgt:

class CorsMiddleware
{
    public function handle($request, Closure $next)
    {
        header("Access-Control-Allow-Origin: *");
        header("Access-Control-Allow-Headers: Content-Type, Authorization");
        header("Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE");

        return $next($request);
    }
}

Sie müssen die Middleware im Kernel registrieren:

protected $middleware = [
    \App\Http\Middleware\CorsMiddleware::class,
];
  1. Front-End-HTTP-Anfrage

Wenn das Front-End die API-Schnittstelle aufruft, muss es eine HTTP-Anfrage senden. Zu den Anforderungsmethoden gehören GET, POST, PUT, DELETE usw. Unter diesen wird die GET-Methode zum Abrufen von Daten, die POST-Methode zum Übermitteln von Daten, die PUT-Methode zum Aktualisieren von Daten und die DELETE-Methode zum Löschen von Daten verwendet. In Front-End-Frameworks wie jQuery oder Angular können HTTP-Anfragen über die Methode $.ajax oder $http gesendet werden. Der Beispielcode lautet wie folgt:

$.ajax({
    url: 'http://api.example.com/register',
    type: 'POST',
    data: {username: 'test', password: '123456'},
    dataType: 'json',
    beforeSend: function() {
        // 请求前处理逻辑
    },
    success: function(data) {
        // 响应成功处理逻辑
    },
    error: function() {
        // 响应错误处理逻辑
    }
});
  1. Andere Anweisungen

Bei der Realisierung der Trennung von PHP-Front-End und -Back-End müssen Sie auch auf einige Sicherheitsprobleme achten, wie zum Beispiel: Schnittstellen-Anti- Bürsten, Überprüfung der Parametersicherheit usw., und Sie müssen der Codelogik eine entsprechende Verarbeitung hinzufügen. Darüber hinaus muss auch das Schreiben und Pflegen von Schnittstellendokumenten berücksichtigt werden, um den Einsatz von Front-End-Entwicklern zu erleichtern.

Kurz gesagt, die Trennung von PHP-Front-End und Backend ist nicht schwer zu erreichen, aber wir müssen die Erfahrungen in der Praxis ständig zusammenfassen und die Codequalität und -sicherheit verbessern, um gute Ergebnisse zu erzielen.

Das obige ist der detaillierte Inhalt vonBringen Sie Ihnen Schritt für Schritt bei, wie Sie mit PHP Front-End und Back-End trennen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn