Crear y ejecutar un proyecto ThinkPHP 8
¿Qué es ThinkPHP?
ThinkPHP es un framework PHP de código abierto creado por desarrolladores PHP chinos. Su objetivo es proporcionar un conjunto de herramientas simples y eficientes para que los desarrolladores construyan aplicaciones web modernas. ThinkPHP ofrece una rica funcionalidad, como enrutamiento, sesiones, caché, autenticación, etc., simplificando las tareas comunes de desarrollo web.
Principales características y ventajas de ThinkPHP
- Simple y eficiente: La sintaxis de ThinkPHP es simple y eficiente, haciendo que el código sea más legible y mantenible.
- Rica colección de funciones: Incluye enrutamiento, autenticación, gestión de sesiones y caché, facilitando enormemente el trabajo de desarrollo.
- Potente ORM: ThinkPHP ofrece potentes opciones de manipulación de bases de datos.
- Diseño modular: Con el gestor de paquetes Composer, es fácil integrar bibliotecas y extensiones de terceros.
- Gran apoyo comunitario: Posee una amplia comunidad de desarrolladores y un ecosistema rico.
ThinkPHP puede ayudar a los desarrolladores a construir rápidamente aplicaciones web de alta calidad y APIs, adaptándose a proyectos de todas las escalas, desde aplicaciones pequeñas hasta sistemas empresariales de gran tamaño.
Crear y ejecutar un proyecto ThinkPHP 8 con ServBay
En este artículo, usaremos el entorno PHP proporcionado por ServBay para crear y ejecutar un proyecto ThinkPHP 8. Utilizaremos la función de 'host' de ServBay para configurar el servidor web y acceder al proyecto mediante una configuración simple.
Nota: Si alguna vez fuiste usuario de NGINX o Apache
ServBay utiliza Caddy como servidor web por defecto. Para aquellos que migran desde NGINX o Apache a ServBay, hay algunos cambios clave a tener en cuenta:
Configuración de Caddy
ServBay tiene integrado Caddy, y la configuración por defecto ya está óptimamente configurada. Los desarrolladores solo necesitan gestionar los sitios a través de la función 'host' de ServBay, sin necesidad de modificar manualmente los archivos de configuración de Caddy.
Reglas de reescritura y .htaccess
En NGINX y Apache, los desarrolladores normalmente escriben sus propias reglas de reescritura y archivos .htaccess para manejar la reescritura de URL y otras configuraciones. Sin embargo, ServBay ya tiene configuradas las reglas de Caddy, por lo que, a menos que haya necesidades específicas, los desarrolladores no necesitan escribir estas reglas ellos mismos.
Más información
Para obtener más detalles, consulte Rewrite y htaccess, Cómo migrar un sitio web Apache a ServBay, Cómo migrar un sitio web NGINX a ServBay.
Crear un proyecto ThinkPHP
TIP
ServBay recomienda a los desarrolladores colocar los sitios web en el directorio /Applications/ServBay/www
para facilitar la gestión.
Instalar Composer
ServBay ya viene con Composer preinstalado, no es necesario instalarlo por separado.
Crear un proyecto ThinkPHP
Usar Composer para crear un nuevo proyecto ThinkPHP:
bashcd /Applications/ServBay/www composer create-project topthink/think servbay-thinkphp-app
1
2Entrar en el directorio del proyecto
Entrar en el directorio del proyecto ThinkPHP recién creado:
bashcd /Applications/ServBay/www/servbay-thinkphp-app
1
Configuración inicial
Configurar variables de ambiente
Configurar la información de conexión a la base de datos y otras variables de ambiente en el archivo
config/database.php
. Asegurarse de que la configuración sea correcta:php'type' => 'mysql', 'hostname' => '127.0.0.1', 'database' => 'servbay_thinkphp_app', 'username' => 'root', 'password' => 'password', 'hostport' => '3306',
1
2
3
4
5
6
Configurar el servidor web
DANGER
Las reglas de reescritura de ThinkPHP difieren de las reglas generales, por lo que se requiere una personalización.
Usar la función de 'host' de ServBay para acceder al proyecto ThinkPHP. En la configuración de 'host' de ServBay, agregar un nuevo host:
- Nombre:
Mi primer sitio de desarrollo ThinkPHP
- Dominio:
servbay-thinkphp-test.local
Luego hacer clic en Configuración personalizada
en la parte superior derecha e ingresar el siguiente contenido:
encode zstd gzip
import set-log servbay-thinkphp-test.local
tls internal
@canonicalPath {
file {
try_files {path}/index.php
}
not path */
}
redir @canonicalPath {path}/ 308
root * /Applications/ServBay/www/servbay-thinkphp-app/public
route {
try_files {path} {path}/ /index.php?s={path}&{query}
php_fastcgi unix//Applications/ServBay/tmp/php-cgi-8.3.sock
}
file_server
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
TIP
Si necesita diferentes versiones de PHP, modifique php-cgi-8.3.sock
a la versión de PHP correspondiente. Asegúrese también de cambiar set-log
al dominio correspondiente del sitio web.
Para los detalles de configuración, consulte Agregar primer sitio web.
Agregar código de ejemplo
En el archivo route/app.php
, agregar el siguiente código para mostrar "Hello ServBay!":
Route::get('servbay', function () {
return 'Hello ServBay!';
});
2
3
Acceder al sitio web
Abrir el navegador y visitar https://servbay-thinkphp-test.local/servbay
, verá la página mostrar Hello ServBay!
.
Ejemplo de base de datos NoSQL
Ejemplo de Memcached
Instalar la extensión de Memcached
En ServBay, la extensión de Memcached ya está preinstalada, no es necesario instalarla por separado.
Configurar Memcached
Configurar la información de conexión de Memcached en el archivo
config/cache.php
:php'type' => 'memcached', 'host' => '127.0.0.1',
1
2Usar Memcached
Usar la caché en el controlador:
phpuse think\facade\Cache; Route::get('/memcached', function () { Cache::set('key', 'value', 600); return Cache::get('key'); });
1
2
3
4
5
6
Ejemplo de Redis
Instalar la extensión de Redis
En ServBay, la extensión de Redis ya está preinstalada, no es necesario instalarla por separado.
Configurar Redis
Configurar la información de conexión de Redis en el archivo
config/cache.php
:php'type' => 'redis', 'host' => '127.0.0.1', 'port' => 6379, 'password' => '',
1
2
3
4Usar Redis
Usar la caché en el controlador:
phpuse think\facade\Cache; Route::get('/redis', function () { Cache::set('key', 'value'); return Cache::get('key'); });
1
2
3
4
5
6
Ejemplo de base de datos relacional
Crear estructura de base de datos y archivos de migración
Instalar la herramienta de migración de bases de datos
Para usar la herramienta de migración de bases de datos de ThinkPHP, primero instálela:
bashcomposer require topthink/think-migration
1Crear archivo de migración
Usar la herramienta de línea de comandos proporcionada por ThinkPHP para crear un archivo de migración:
bashphp think migrate:create CreateUserTable
1Editar archivo de migración
Encontrar el archivo de migración recién creado en el directorio
database/migrations
y editarlo para definir la estructura de la tabla de la base de datos:phppublic function up() { Schema::create('users', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->string('email')->unique(); $table->timestamps(); }); }
1
2
3
4
5
6
7
8
9Ejecutar migración
Usar la herramienta de línea de comandos proporcionada por ThinkPHP para ejecutar la migración y crear la tabla de la base de datos:
bashphp think migrate:run
1
Ejemplo de MySQL
Configurar MySQL
Configurar la información de conexión de MySQL en el archivo
config/database.php
:php'type' => 'mysql', 'hostname' => '127.0.0.1', 'database' => 'servbay_thinkphp_app', 'username' => 'root', 'password' => 'password', 'hostport' => '3306',
1
2
3
4
5
6Escribir datos de usuario
Escribir datos de usuario en el controlador:
phpuse think\Db; Route::get('/mysql-add', function () { Db::table('users')->insert([ 'name' => 'ServBay', 'email' => '[email protected]', ]); return 'User added'; });
1
2
3
4
5
6
7
8
9Usar MySQL
Llamar a la base de datos en el controlador:
phpuse think\Db; Route::get('/mysql', function () { $users = Db::table('users')->select(); return json($users); });
1
2
3
4
5
6
Ejemplo de PostgreSQL
Configurar PostgreSQL
Configurar la información de conexión de PostgreSQL en el archivo
config/database.php
:php'type' => 'pgsql', 'hostname' => '127.0.0.1', 'database' => 'servbay_thinkphp_app', 'username' => 'root', 'password' => 'password', 'hostport' => '5432',
1
2
3
4
5
6Escribir datos de usuario
Escribir datos de usuario en el controlador:
phpuse think\Db; Route::get('/pgsql-add', function () { Db::table('users')->insert([ 'name' => 'ServBay', 'email' => '[email protected]', ]); return 'User added'; });
1
2
3
4
5
6
7
8
9Usar PostgreSQL
Llamar a la base de datos en el controlador:
phpuse think\Db; Route::get('/pgsql', function () { $users = Db::table('users')->select(); return json($users); });
1
2
3
4
5
6
Con los pasos anteriores, ha creado y ejecutado con éxito un proyecto ThinkPHP 8, utilizando las funciones proporcionadas por ServBay para gestionar y acceder a su proyecto, y conectándolo a varias bases de datos, accediendo a los datos de estas.