Rumah  >  Artikel  >  rangka kerja php  >  Cipta aplikasi web peringkat perusahaan yang lengkap melalui ThinkPHP6

Cipta aplikasi web peringkat perusahaan yang lengkap melalui ThinkPHP6

王林
王林asal
2023-06-20 08:02:001245semak imbas

Dalam bidang pembangunan aplikasi web semasa, banyak aplikasi web peringkat perusahaan dilaksanakan menggunakan bahasa PHP. Antaranya, rangka kerja ThinkPHP adalah salah satu perintis dalam pembangunan rangka kerja PHP domestik Setelah bertahun-tahun pembangunan dan penambahbaikan, ia telah menjadi salah satu rangka kerja PHP yang paling popular di China. Artikel ini akan membina aplikasi Web peringkat perusahaan yang lengkap dari awal melalui pembelajaran dan amalan rangka kerja ThinkPHP6.

1. Pemasangan dan konfigurasi

Pertama, kita perlu memasang PHP dan pangkalan data (MySQL atau lain-lain), serta pengurus pakej komposer dalam persekitaran setempat.

Kedua, muat turun versi terkini rangka kerja ThinkPHP6 dan letakkan fail dalam direktori kerja yang ditentukan. Seterusnya, laksanakan arahan "pemasangan komposer" dalam tetingkap baris arahan untuk memasang perpustakaan bergantung dan pemalam yang diperlukan oleh rangka kerja.

Kemudian, kita perlu mengkonfigurasi projek. Mula-mula, konfigurasikan pembolehubah persekitaran projek ke dalam fail .env dan namakan semula fail .env.example kepada fail .env. Kedua, konfigurasi pangkalan data dan tetapkan maklumat sambungan pangkalan data dalam fail /config/database.php.

Akhir sekali, kita perlu menjalankan perintah "php think migrate:run" dalam direktori akar untuk mencipta jadual pangkalan data dan data awal.

2. Cipta pengawal dan model

Dalam rangka kerja ThinkPHP6, pengawal (Pengawal) digunakan untuk memproses permintaan HTTP dan pemprosesan logik perniagaan utama dikendalikan oleh pengawal. Model ialah kelas yang memperoleh atau menyimpan data dengan mengendalikan pangkalan data.

Dalam contoh ini, kami mencipta pengawal Pengguna dan model Pengguna yang sepadan. Cipta fail User.php dalam folder /app/controller dan tulis kod berikut:

<?php
namespace appcontroller;

use thinkacadeDb;
use thinkacadeRequest;

class User
{
    public function getAllUser()
    {
        $userList = Db::table('user')->select();
        return json_encode($userList);
    }

    public function getUserById($id)
    {
        $user = Db::table('user')->where('id', $id)->find();
        return json_encode($user);
    }

    public function addUser()
    {
        $data = Request::param();
        Db::table('user')->insert($data);
        return 'Add Successfully';
    }

    public function updateUser($id)
    {
        $data = Request::param();
        Db::table('user')->where('id', $id)->update($data);
        return 'Update Successfully';
    }

    public function deleteUser($id)
    {
        Db::table('user')->where('id', $id)->delete();
        return 'Delete Successfully';
    }
}

Cipta fail User.php dalam folder /app/model dan tulis kod berikut:

<?php
namespace appmodel;

use thinkModel;

class User extends Model
{
    protected $table = 'user';
}

3. Cipta laluan dan pandangan

Dalam rangka kerja ThinkPHP6, laluan digunakan untuk memetakan URL kepada pengawal dan kaedah yang sepadan, dan paparan digunakan untuk membentangkan pengawal selepas pemprosesan data .

Dalam contoh ini, kami mencipta laluan berikut:

  1. GET /user: Dapatkan senarai semua pengguna, gunakan kaedah getAllUser untuk memproses.
  2. GET /user/:id: Dapatkan maklumat pengguna berdasarkan ID pengguna, gunakan kaedah getUserById untuk memproses.
  3. POST /pengguna: Tambah pengguna baharu, gunakan kaedah addUser untuk memproses.
  4. PUT /user/:id: Kemas kini maklumat pengguna berdasarkan ID pengguna, gunakan kaedah updateUser untuk memproses.
  5. DELETE /user/:id: Padamkan pengguna berdasarkan ID pengguna dan gunakan kaedah deleteUser.

Dalam fail /app/route.php, tulis kod berikut:

<?php
use thinkacadeRoute;

Route::get('/user', 'User/getAllUser');
Route::get('/user/:id', 'User/getUserById');
Route::post('/user', 'User/addUser');
Route::put('/user/:id', 'User/updateUser');
Route::delete('/user/:id', 'User/deleteUser');

Kemudian, buat folder Pengguna di bawah folder /app/view dan letakkannya dalam folder Cipta fail paparan seperti index.html, edit.html, add.html dan sebagainya.

Dalam fail index.html, kami boleh menyenaraikan semua pengguna. Dalam fail edit.html dan add.html, kami boleh mengedit dan menambah maklumat pengguna.

Akhir sekali, tulis kaedah pemaparan paparan yang sepadan dalam pengawal. Sebagai contoh, dalam pengawal Pengguna, kita boleh menulis kod berikut:

public function all()
{
    return view('index')->assign('userList', Db::table('user')->select());
}

public function edit($id)
{
    return view('edit')->assign('user', Db::table('user')->where('id', $id)->find());
}

public function add()
{
    return view('add');
}

4. Laksanakan pengesahan pengguna

Dalam aplikasi web peringkat perusahaan, pengesahan pengguna ialah fungsi yang sangat penting. Dalam rangka kerja ThinkPHP6, kami boleh melaksanakan pengesahan pengguna yang mudah dan fleksibel melalui komponen Auth.

Pertama, kita perlu melaksanakan konfigurasi berkaitan pengesahan dalam fail /config/auth.php.

Seterusnya, kita boleh menggunakan log masuk, log keluar, semak dan kaedah lain yang disediakan oleh komponen Auth dalam pengawal untuk membangunkan fungsi pengesahan pengguna. Sebagai contoh, dalam pengawal Pengguna, kita boleh menulis kod berikut:

<?php
namespace appcontroller;

use appmodelUser as UserModel;
use thinkacadeDb;
use thinkacadeRequest;
use thinkacadeSession;
use thinkacadeView;
use thinkuthAuth;

class User
{
    public function login()
    {
        if (Request::isPost()) {
            $data = Request::param();
            if (Auth::attempt(['username' => $data['username'], 'password' => $data['password']])) {
                Session::flash('success', 'Login successfully.');
                return redirect('/index');
            } else {
                Session::flash('error', 'Login failed.');
                return view('login');
            }
        } else {
            return view('login');
        }
    }

    public function register()
    {
        if (Request::isPost()) {
            $data = Request::param();
            $userModel = new UserModel();
            $userModel->save($data);
            return redirect('/login');
        } else {
            return view('register');
        }
    }

    public function logout()
    {
        Auth::logout();
        Session::flash('success', 'Logout successfully.');
        return redirect('/login');
    }

    public function check()
    {
        $user = Auth::user();
        if (!$user) {
            Session::flash('error', 'You are not logged in.');
            return redirect('/login');
        }
        return $user;
    }
}

5. Laksanakan antara muka API

Dalam aplikasi web peringkat perusahaan, antara muka API ialah fungsi yang sangat penting. Dalam rangka kerja ThinkPHP6, kami boleh membangunkan antara muka API untuk memenuhi permintaan data dari penghujung panggilan.

Dalam contoh ini, kami mencipta antara muka API berikut:

  1. GET /api/user: Dapatkan senarai semua pengguna, gunakan kaedah getAllUser untuk memproses.
  2. GET /api/user/:id: Dapatkan maklumat pengguna berdasarkan ID pengguna, gunakan kaedah getUserById untuk memproses.
  3. POST /api/user: Tambah pengguna baharu, gunakan kaedah addUser untuk memproses.
  4. PUT /api/user/:id: Kemas kini maklumat pengguna berdasarkan ID pengguna, gunakan kaedah updateUser untuk memproses.
  5. DELETE /api/user/:id: Padamkan pengguna berdasarkan ID pengguna, gunakan kaedah deleteUser.

Dalam pengawal, kita perlu mengendalikan versi antara muka API, jenis permintaan, parameter permintaan, format respons dan kandungan lain yang berkaitan.

Sebagai contoh, dalam pengawal Pengguna, kita boleh menulis kod berikut:

<?php
namespace appcontroller;

use appmodelUser as UserModel;
use thinkacadeDb;
use thinkacadeRequest;

class User
{
  // ...

  public function getAllUser()
  {
      $userList = Db::table('user')->select();
      return json($userList);
  }

  public function getUserById($id)
  {
      $user = Db::table('user')->where('id', $id)->find();
      return json($user);
  }

  public function addUser()
  {
      $data = Request::param();
      Db::table('user')->insert($data);
      return 'Add Successfully';
  }

  public function updateUser($id)
  {
      $data = Request::param();
      Db::table('user')->where('id', $id)->update($data);
      return 'Update Successfully';
  }

  public function deleteUser($id)
  {
      Db::table('user')->where('id', $id)->delete();
      return 'Delete Successfully';
  }
}

6. Sebarkan Aplikasi Web

Selepas kami membangunkan aplikasi Web peringkat perusahaan, kami perlu Sebarkan ia ke pelayan untuk diakses oleh pengguna. Semasa proses penempatan khusus, kita perlu memberi perhatian kepada perkara berikut:

  1. Keselamatan: Semasa proses penempatan, kami perlu memastikan keselamatan aplikasi. Sebagai contoh, keselamatan aplikasi boleh dipastikan dengan menyimpan data sensitif dalam cara yang disulitkan dan menapis permintaan berniat jahat.
  2. Pengoptimuman prestasi: Semasa proses penempatan, kami perlu melaksanakan pengoptimuman prestasi pada aplikasi. Contohnya, gunakan teknologi caching untuk mempercepatkan akses halaman, membolehkan pemampatan Gzip untuk mengurangkan jumlah penghantaran data, dsb. untuk meningkatkan prestasi aplikasi.
  3. Pemantauan dan penyelenggaraan: Semasa proses penempatan, kami perlu mewujudkan sistem pemantauan dan penyelenggaraan yang lengkap. Contohnya, gunakan pelayan log bebas untuk menyimpan maklumat log, gunakan alat pemantauan untuk memantau status berjalan aplikasi dalam masa nyata, dsb. untuk memastikan operasi aplikasi yang berkesan.

IV. Ringkasan

Melalui langkah di atas, kami berjaya menggunakan rangka kerja ThinkPHP6 untuk mencipta aplikasi Web peringkat perusahaan yang lengkap dari awal, dan mempelajari pengetahuan dan Kemahiran yang sepadan. Dalam kerja pembangunan masa hadapan, kami boleh menggunakan teknologi ini secara fleksibel mengikut keadaan tertentu untuk membangunkan aplikasi Web yang lebih baik.

Atas ialah kandungan terperinci Cipta aplikasi web peringkat perusahaan yang lengkap melalui ThinkPHP6. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn