PHPackages                             atomdev/odinfmk - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. atomdev/odinfmk

ActiveLibrary

atomdev/odinfmk
===============

Simple PHP Framework

1.7.6(6y ago)284MITPHPPHP ^7.1

Since Mar 5Pushed 6y ago1 watchersCompare

[ Source](https://github.com/atomsolucoesinteligentes/odinfmk)[ Packagist](https://packagist.org/packages/atomdev/odinfmk)[ RSS](/packages/atomdev-odinfmk/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (10)DependenciesVersions (40)Used By (0)

Bem-vindo à Ødin!
=================

[](#bem-vindo-à-ødin)

Ødin é uma Framework do PHP simples, prática e eficiente. Desenvolvida para se fazer mais e escrever menos. Se ainda não tem uma licença, contate-nos em `contato@atomsi.com.br`.

Documentação
============

[](#documentação)

Instalação
----------

[](#instalação)

Instale a Ødin através do Composer.

> composer require atomdev/odinfmk

Iniciando um projeto
--------------------

[](#iniciando-um-projeto)

Primeiramente você deve definir as constantes `ODIN_SERIAL` e `ODIN_ROOT` no arquivo de autoload do Composer (`vendor/autoload.php`).

```
    define("ODIN_SERIAL", "SUA_SERIAL");
    define("ODIN_ROOT", "/diretorio/raiz/do/projeto");
```

Em seguida, na raiz do seu projeto, você deve definir a estrutura base do projeto.

```
config/
   |-- .env
http/
    controllers/
       |-- Aqui ficarão seus Controllers
    middlewares/
       |-- Aqui ficarão seus Middlewares
database/
    models/
       |-- Aqui ficarão seus Models
views/
   |-- Aqui ficarão suas views
utils/
   |-- Aqui ficarão suas classes de utilidades e seus Helpers
.htaccess

```

Vale ressaltar que a estrutura apresentada acima é apenas o modelo base padrão. Você pode criar suas pastas personalizadas além das mostradas acima.

### Definindo as configurações do projeto

[](#definindo-as-configurações-do-projeto)

Na pasta de `config`, você deverá criar um arquivo chamado `.env`. Este será o arquivo de configurações do projeto. Nele será definido o ambiente, o SGBD, os diretórios e url de acesso do projeto. Veja o seguinte modelo:

```
ENVIRONMENT     = dev
DRIVER          = mysql
SOURCE_DIR      = src/
HTTP_ROOT	= http://localhost:8080
HTTP_ROOT_FILES = http://localhost:8080/assets/

```

Você pode utilizar de dois ambientes Desenvolvimento e Produção utilizando a constante `ODIN_ENV` junto de `ODIN_ROOT` e `ODIN_PATH`, ao definir como `dev` um arquivo chamado dev.env deverá ser criado na pasta de configurações com as diretivas de desenvolvimento enquanto o .env passa a ser as diretivas de produção.

### Definindo as rotas da aplicação

[](#definindo-as-rotas-da-aplicação)

Antes de definir suas rotas você precisa configurar o `.htaccess` localizado na raiz do projeto. Ao abrir você encontrará a seguinte estrutura:

```
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [QSA,L]

ErrorDocument 403 http://localhost/pagina/de/erro/403
Options All -Indexes

```

Você pode definir uma página para tratamento dos erros 403, que são lançados quando o usuário tenta acessar pastas proibidas. Por padrão, todas as pastas da aplicação têm o acesso proibido a abertura via HTTP.

Após configurar o `.htaccess` você poderá definir suas rotas no arquivo `index.php`, como no exemplo a seguir.

```

```

Utilizando desta mesma propriedade, você pode recuperar o URL de qualquer rota que você tenha definido em suas Views, facilitando a navegação entre diversas páginas. Mas para isso você precisa passar o objeto `router` como uma variável para a View.

```
public function view()
{
    View::render($this, "login_page.php", [
        "router" => $this->router
    ]);
}

```

Na view:

```
