Diferència entre revisions de la pàgina «NF2 - Framework Laravel»

De wikiserver
Dreceres ràpides: navegació, cerca
(=RUTAS BÁSICAS)
Línia 92: Línia 92:
  
 
<source lang="php">
 
<source lang="php">
 +
//dentro de la misma vista
 +
Route::get('/show/{id?}',function($id="122"){
  
 +
    return $id;
 +
   
 +
    })->name('show');
 
</source>
 
</source>
  
  
 
<source lang="php">
 
<source lang="php">
 +
Route::get('/par-o-impar-{numero}',function($numero){    // no hace falta usar '/'
 +
 +
return $numero;
 +
 +
//return redirect()->to('/show/3');  -> te redirije a la ruta que le indicas
 +
//return redirect()->route('show')  -> te redirije a la ruta que tiene el nombre asignado en el name.
 +
//return redirect()->route('show',['id' => '222'])  -> en caso de pasarle algun parámetro
 +
} )->where(['number' => '[\d]+']);    // de esta forma añadimos una expresion regular para que solo puedan introducir numeros
  
 
</source>
 
</source>
Línia 102: Línia 115:
  
 
<source lang="php">
 
<source lang="php">
 +
Route::get('user/{name?}', function ($name = 'John') {  //$name=null
 +
    return $name;
 +
});
 +
</source>
  
 +
Restricciones con Expresiones Regulares
 +
<source lang="php">
 +
Route::get('user/{name}', function ($name) {
 +
    //
 +
})->where('name', '[A-Za-z]+');  //nomes poden passar lletres miníscules o Majúscules como mínim una volta
 +
 +
Route::get('user/{id}', function ($id) {
 +
    //
 +
})->where('id', '[0-9]+');
 +
 +
Route::get('user/{id}/{name}', function ($id, $name) {
 +
    //
 +
})->where(['id' => '[0-9]+', 'name' => '[a-z]+']);  //le pasamos un array en caso de más de un elemento.
 
</source>
 
</source>
 +
  
  
 
<source lang="php">
 
<source lang="php">
  
 +
Route::group(['prefix'=>'admin'],function(){
 +
   
 +
    Route::get('modificar-usuario',function(){
 +
 +
    return "modifica usuario";
 +
 +
    });
 +
 +
 +
    Route::get('insertar-usuario',function(){
 +
 +
    return "insertar usuario";
 +
 +
    });
 +
 +
});
 +
</source>
 +
 +
 +
<source lang="php">
 +
</source>
 +
 +
<source lang="php">
 +
</source>
 +
 +
 +
<source lang="php">
 +
</source>
 +
 +
 +
<source lang="php">
 +
</source>
 +
 +
<source lang="php">
 +
</source>
 +
 +
<source lang="php">
 
</source>
 
</source>

Revisió del 10:53, 10 oct 2019

ESTRUCTURA DIRECTORIOS Directorio App

El directorio app contiene el código prinicipal de tu aplicación. Exploraremos este directorio con más detalle pronto; sin embargo, casi todas las clases en tu aplicación estarán en este directorio.

Directorio Bootstrap

El directorio bootstrap contiene el archivo app.php que maqueta el framework. Este directorio también almacena un directorio cache que contiene archivos generados por el framework para optimización de rendimiento como los archivos de cache de rutas y servicios.

Directorio Config

El directorio config, como el nombre implica, contiene todos los archivos de configuración de tu aplicación. Es una buena idea leer todos estos archivos y familiarizarte con todas las opciones disponibles para ti.

Directorio Database

El directorio database contiene las migraciones de tu base de datos, model factories y seeders. Si lo deseas, puedes también usar este directorio para almacenar una base de datos SQLite.

Directorio Public

El directorio public contiene el archivo index.php, el cual es el punto de acceso para todas las solicitudes llegan a tu aplicación y configura la autocarga. Este directorio también almacena tus assets, tales como imagenes, JavaScript y CSS.


Directorio Resources

El directorio resources contiene tus vistas así como también tus assets sin compilar tales como LESS, Sass o JavaScript. Este directorio también almacena todos tus archivos de idioma.

Directorio Routes

El directorio routes contiene todas las definiciones de rutas para tu aplicación. Por defecto, algunos archivos de rutas son incluidos con Laravel: web.php, api.php, console.php y channels.php.

El archivo web.php contiene rutas que RouteServiceProvider coloca en el grupo de middleware web, que proporciona estado de sesión, protección CSRF y encriptación de cookies. Si tu aplicación no ofrece una API sin estado, todas tus rutas probablemente serán definidas en el archivo web.php.

El archivo api.php contiene rutas que RouteServiceProvider coloca en el grupo de middleware api, que proporcionan limitación de velocidad. Estas rutas están pensadadas para no tener estado, así que las solicitudes que llegan a la aplicación a través de estas rutas están pensadas para ser autenticadas mediante tokens y no tendrán acceso al estado de sesión.

El archivo console.php es donde puedes definir todas los comandos basados en Closures de tu aplicación. Cada Closure está enlazado a una instancia de comando permitiendo una forma simple de interactuar con los métodos de entrada y salida de cada comando. Aunque este archivo no define ninguna ruta HTTP, sí define puntos de entrada en consola (rutas) a tu aplicación.

El archivo channels.php es donde puedes registrar todos los canales de transmisión de eventos que tu aplicación soporta.

Directorio Storage

El directorio storage contiene tus plantillas compiladas de Blade, sesiones basadas en archivos, archivos de caches y otros archivos generados por el framework. Este directorio está segregado en los directorios app, framework y logs. El directorio app puede ser usado para almacenar cualquier archivo generado por tu aplicación. El directorio framework es usado para almacenar archivos generados por el framework y cache. Finalmente, el directorio logs contiene los archivos de registros de tu aplicación.

El directorio storage/app/public puede ser usado para almacenar archivos generados por el usario, tales como imagenes de perfil, que deberían ser accesibles públicamente. Debes crear un enlace simbólico en public/storage que apunte a este directorio. Puedes crear el enlace usando el comando php artisan storage:link.

El Directorio Tests

El directorio tests contiene tus pruebas automatizadas. Una prueba de ejemplo de PHPUnit es proporcionada. Cada clase de prueba debe estar precedida por la palabra Test. Puedes ejecutar tus pruebas usando los comandos phpunit o php vendor/bin/phpunit.

Directorio Vendor

El directorio vendor contiene tus dependencias de Composer.


=RUTAS BÁSICAS

Dentro de Routers->Web

Route::get('mundo', function () {
    return 'Hello World';
});

Creamos un controlador vacio, App->http->Controller->

php artisan make:controller MoviesController --plain
en route
Route::get('/ejemplo', 'PeliculasController@index');
en controlador
public function index(){

echo "hola Julio";

}


//verbos HTTP múltiples
Route::match(['get', 'post'], '/', function () {
    //
});

//verbos HTTP cualquiera
Route::any('/', function () {
    //
});


//dentro de la misma vista
Route::get('/show/{id?}',function($id="122"){

    return $id;
    
    })->name('show');


Route::get('/par-o-impar-{numero}',function($numero){    // no hace falta usar '/'

return $numero;

//return redirect()->to('/show/3');  -> te redirije a la ruta que le indicas 
//return redirect()->route('show')  -> te redirije a la ruta que tiene el nombre asignado en el name.
//return redirect()->route('show',['id' => '222'])  -> en caso de pasarle algun parámetro
} )->where(['number' => '[\d]+']);    // de esta forma añadimos una expresion regular para que solo puedan introducir numeros


Route::get('user/{name?}', function ($name = 'John') {  //$name=null
    return $name;
});

Restricciones con Expresiones Regulares

Route::get('user/{name}', function ($name) {
    //
})->where('name', '[A-Za-z]+');   //nomes poden passar lletres miníscules o Majúscules como mínim una volta 

Route::get('user/{id}', function ($id) {
    //
})->where('id', '[0-9]+');

Route::get('user/{id}/{name}', function ($id, $name) {
    //
})->where(['id' => '[0-9]+', 'name' => '[a-z]+']);   //le pasamos un array en caso de más de un elemento.


Route::group(['prefix'=>'admin'],function(){ 
    
    Route::get('modificar-usuario',function(){

    return "modifica usuario";

    });


    Route::get('insertar-usuario',function(){

    return "insertar usuario";

    });

});