1. Go to this page and download the library: Download phpluna/framework library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
namespace App\Controllers;
class Product {
public static function productPage($request, $response) {
// ...
}
}
$request->header(); // Obter parâmetros do header
$request->query(); // Obter parâmetros da query
$request->body(); // Obter parâmetros do corpo
$request->param(); // Obter parâmetros da URL
$request->getUri(); // Obter URI
$request->getHttpMethod(); // Obter método HTTP
class Product {
public static function productPage($request, $response) {
return $response->send(200, "Sucesso");
}
}
public static function getProduct($request, $response) {
// ...
return $response->send(200, ["data" => "Sucesso"], "application/json");
}
$res->send(200, $content, 'json'); // Ao invés de 'application/json'
$res->send(200, $content, 'html'); // Ao invés de 'text/html'
namespace App\Services;
class Product {
public static function find($id) {
// ...
}
}
use App\Services\Product as ProductService;
class Product {
public static function getProduct($request, $response) {
$id = $request->param("id");
$product = ProductService::find($id);
return $response->send(200, $product);
}
}
namespace App\Helpers;
class Uuid {
public function generate() {
// ...
}
}
use App\Helpers\Uuid as UuidHelper;
class User {
public function find($id) {
return UuidHelper::generate();
}
}
namespace App\Controllers\Pages;
use Luna\Utils\View;
class Product {
public static function productPage($request, $response) {
$content = View::render('pages/product', [
'name' => "Produto nome",
'description' => "Produto descrição"
]);
return $response->send(200, $content);
}
}
namespace App\Controllers\Pages;
use Luna\Utils\Flash;
class Product {
public static function productPage($request, $response) {
// ...
Flash::create("productNotFound", "Produto não encontrado", 'error');
}
}
Flash::create("productNotFound", "Produto não encontrado", 'error');
$flash = Flash::render("productNotFound");
$flash = Flash::render(false, "Produto não encontrado", 'error');
namespace App\Controllers\Pages;
use Luna\Utils\Pagination;
class Product {
public static function productsPage($request, $response) {
// ...
$pagination = new Pagination($products, $page, $limit);
$products = $pagination->get();
}
}
$pagination->getCount(); // Obter quantidade de itens da página atual
$pagination->getList(); // Obter lista de itens da página atual
$pagination->getPages(); // Obter quantidade de páginas
$pagination->getPage(); // Obter página atual
$pagination->getLimit(); // Obter quantidade de itens por página
$pagination->getTotal(); // Obter quantidade total de itens
namespace App\Controllers\Pages;
use Luna\Utils\Pagination;
class Product {
public static function productsPage($request, $response) {
// ...
$pagination = new Pagination($products, $page, $limit);
$paginationRender = $pagination->render($req);
$content = View::render('pages/products', ['pagination' => $paginationRender]);
}
}
namespace App\Models;
use Luna\Db\Model;
class Product extends Model {
// ...
}
namespace App\Services;
use App\Models\Product;
class Product {
public function find() {
return Product::find(1);
}
public function list() {
return Product::all();
}
}
namespace App\Controllers;
use Luna\Utils\Seo;
class Product {
public static function getProduct($request, $response) {
// ...
$seo = new Seo();
$seo->setTitle("Produto nome");
$seo->setDescription("Produto descrição");
$seo->setKeywords(["produto-chave-1", "produto-chave-2"]);
$seo->setImage("produto.png");
$seo->setAuthor("Autor nome");
$seoRender = $seo->render();
$content = View::render('pages/product', ['seo' => $seoRender]);
}
}
$seo = new Seo();
$seo->setTitle("Produto nome");
$seo->twitter()->setTitle("Produto nome (Twitter)");
$seo->meta()->setTitle("Produto nome (Meta)");
$seo = new Seo();
$seo->twitter();
$seo->meta();
$seo->setTitle("Produto nome")
// ...
$seo = new Seo(['twitter', 'meta']);
$seo->setTitle("Produto nome")
// ...
$seo = new Seo();
$seo->setRobots($index, $follow);
// Página indexada e com links seguidos:
$seo->setRobots();
// Página não indexada:
$seo->setRobots(false);
// Página com links não seguidos:
$seo->setRobots(true, false);
// Página não indexada e links não seguidos:
$seo->setRobots(false, false);
use Luna\Utils\Environment;
Environment::get($key); // Obter item específico
Environment::get(); // Obter todos os items
Env::set($key, $value);
html
<img src="{{PUBLIC}}/assets/img/php-logo.png" />
<a href="{{URL}}"><button>Início</button></a>
<a href="{{URL}}/products"><button>Produtos</button></a>
bash
php luna migrate
bash
php luna migrate {{name}}
bash
php luna migrate:rollback
bash
php luna migrate:fresh
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.