├── .docker ├── .gitignore └── mysql │ └── .gitkeep ├── .editorconfig ├── .env.sample ├── .gitignore ├── LICENSE ├── README.md ├── _config.yml ├── app ├── resources │ ├── email │ │ └── .gitkeep │ ├── locales │ │ ├── .gitkeep │ │ ├── en │ │ │ └── error.php │ │ └── pt-br │ │ │ └── error.php │ └── view │ │ ├── _layout │ │ └── basic │ │ │ ├── body.php │ │ │ ├── head.php │ │ │ └── html.php │ │ ├── index.php │ │ └── whoops.php ├── revisions │ └── .gitkeep ├── routes │ └── index.php └── src │ ├── .gitkeep │ └── Controller │ └── View.php ├── composer.json ├── config ├── app.php ├── cors.php ├── database.php ├── defaults.php ├── mail.php └── route.php ├── docker-compose.yml.sample ├── phpmd.xml ├── public ├── .htaccess ├── assets │ ├── favicon.ico │ ├── images │ │ ├── .gitkeep │ │ ├── building.png │ │ ├── favicon │ │ │ ├── android-chrome-192x192.png │ │ │ ├── android-chrome-512x512.png │ │ │ ├── apple-touch-icon.png │ │ │ ├── browserconfig.xml │ │ │ ├── favicon-16x16.png │ │ │ ├── favicon-32x32.png │ │ │ ├── favicon.ico │ │ │ ├── manifest.json │ │ │ ├── mstile-150x150.png │ │ │ └── safari-pinned-tab.svg │ │ └── logo.png │ ├── logo.png │ ├── scripts │ │ └── .gitkeep │ └── styles │ │ ├── .gitkeep │ │ └── style.css └── index.php ├── simples └── storage └── .gitkeep /.docker/.gitignore: -------------------------------------------------------------------------------- 1 | /mysql/* 2 | !/mysql/.gitkeep 3 | -------------------------------------------------------------------------------- /.docker/mysql/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpzm/simples/56d12819b23e5009590be377747e299856d42127/.docker/mysql/.gitkeep -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.js] 12 | indent_style = space 13 | 14 | [*.php] 15 | indent_size = 4 16 | 17 | [*.sh] 18 | indent_size = 4 19 | 20 | [{*.json,*.yml}] 21 | indent_style = space 22 | indent_size = 2 23 | -------------------------------------------------------------------------------- /.env.sample: -------------------------------------------------------------------------------- 1 | [API] 2 | AUTH_TOKEN=X-Auth-Token 3 | 4 | [ENVIRONMENT] 5 | DEFAULT_DATABASE=default 6 | TEST_MODE=TRUE 7 | SECURITY= 8 | ERRORS_DISPLAY=Off 9 | ERRORS_LOG=Off 10 | ERRORS_TRACK=Off 11 | ERRORS_HTML=Off 12 | 13 | [MYSQL_DEFAULT] 14 | MYSQL_DEFAULT_HOST=host 15 | MYSQL_DEFAULT_DATABASE=database 16 | MYSQL_DEFAULT_PORT=3306 17 | MYSQL_DEFAULT_USER=user 18 | MYSQL_DEFAULT_PASSWORD=password 19 | 20 | [MAIL_DEFAULT] 21 | SMTP_DEFAULT_HOST=smtp.mailgun.org 22 | SMTP_DEFAULT_PORT=587 23 | SMTP_DEFAULT_SECURE=tls 24 | SMTP_DEFAULT_USER=user 25 | SMTP_DEFAULT_PASSWORD=password -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # directories 2 | /.git 3 | /.idea 4 | /nbproject 5 | /.docker 6 | /.dev 7 | /.docs 8 | /storage/* 9 | /vendor 10 | 11 | # files 12 | /.env 13 | /docker-compose.yml 14 | *.cache 15 | *.log 16 | 17 | # reverse 18 | !*.gitkeep 19 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Grupo de PHP da Zona da Mata 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Simples 2 | 3 | O Simples é um projeto que reúne um conjunto de pacotes para trabalhar com PHP de forma rápida e minimalista. Menos é mais! 4 | 5 | ## Instalação 6 | Para começar a usar o Simples você pode usar o comando: 7 | ```shell 8 | $ composer create-project phpzm/simples 9 | ``` 10 | ou fazer uma cópia da branch master do repositório 11 | ```shell 12 | $ git clone https://github.com/phpzm/simples.git 13 | $ cd 14 | $ rm .git 15 | $ composer install 16 | ``` 17 | 18 | Neste momento você já tem baixada uma arquitetura básica, e é preciso configurar alguns detalhes para sair usando feliz da vida recursos básicos para um desenvolver um site ou sistema em PHP. 19 | 20 | ## Configurações do Ambiente 21 | 22 | As duas configurações que são disponibilizadas como base que vamos citar abaixo são direcionadas para a mesma url: `http://localhost:8080` 23 | Antes de iniciar qualquer um dos modos do servidor, faça uma cópia do arquivo de exemplo do `.env` que é disponibilizado com o projeto 24 | ```shell 25 | $ composer run env:init 26 | ``` 27 | 28 | ### Docker 29 | 30 | Cria uma cópia do arquivo de exemplo que é disponibilizado junto com o projeto 31 | ```shell 32 | $ composer run docker:init 33 | ``` 34 | 35 | Em seguida você pode usar o comando que está acostumado para rodar os containers ou usar 36 | ```shell 37 | $ composer run docker:serve --timeout=0 38 | ``` 39 | 40 | ### Built-in Server 41 | 42 | Para utilizar o o servidor de desenvolvimento que vem junto com o PHP utilize os comandos abaixo 43 | 44 | ```shell 45 | $ composer run php:serve --timeout=0 46 | ``` 47 | 48 | Se deu tudo certo, ao acessar a url `http://localhost:8080` você já verá nossa página padrão de apresentação 49 | 50 | ## Visão Geral 51 | 52 | Certo, a url que deveria funcionar está ok, mas vamos fazer um apanhado geral do que aconteceu para ela rodar. 53 | 54 | ### /public 55 | Nesta pasta você encontrará o único ponto de entrada para requisições que sua aplicação terá. Ao abrir o arquivo `index.php` que tem dentro dela encontramos a primeira interação com os arquivos do Simples. Além do arquivo PHP, nela também ficam arquivos que costumamos chamar de `assets`. São eles as imagens, arquivos de estilo e recursos usados para aprimorar a visualização dos recursos da aplicação. Esta pasta será usada para deixar expostos documentos que podem ser acessados por qualquer pessoa. 56 | 57 | ### /config 58 | Este diretório contém uma lista de arquivos PHP que são usados para configurar comportamentos da aplicação. Enquanto estiver dando uma olhada nesses arquivos verá que existe por lá uma função chamada `env` sendo utilizada para definir algumas propriedades. Esta função recupera os valores que estão definidos no `.env`. 59 | 60 | ### /app 61 | Finalmente chegamos onde a festa acontece. O Simples vem com as configurações adequadas para usar este diretório para consultar os documentos que você irá criar. Como você poderá fazer muita coisa, dividimos tudo em partes. 62 | 63 | #### /app/resources 64 | Abriga os documentos relacionados a composição dos recursos de forma indireta. Ele vem configurado inicialmente com 3 diretórios (email, locales, view), mas você pode crescer ele a vontade. É possível ver no arquivo `config/app.php` uma instrução de configuração semelhante a essa abaixo. Com base no exemplo, podemos usar o helper `config('app.resources.root')` que será retornado o valor `app/resources` e é assim que o Simples localiza os recursos que usa. 65 | 66 | `[config/app.php]` 67 | ```php 68 | [ 71 | 'root' => 'app/resources', 72 | ] 73 | (...) 74 | ``` 75 | Veremos mais sobre essa parte das `views` e sobre sua utilização da seção de Templates. 76 | 77 | #### /app/routes 78 | Esse é um caminho sugerido para utilização das rotas. Ele está descrito em `config/route.php` onde é possível informar um array de arquivos que serão inicializados para compor as rotas da aplicação. 79 | 80 | `[config/route.php]` 81 | ```php 82 | [ 85 | 'app/routes/index.php' 86 | ] 87 | (...) 88 | ``` 89 | Sendo assim, quando uma requisição HTTP for enviada para o `public/index.php` ele irá começar a procurar por rotas no arquivo `app/routes/index.php`. Mais pra frente, na seção de criação de rotas, veremos como criar rotas de forma organizada utilizando o Simples. 90 | 91 | #### /app/src 92 | Esta pasta está diretamente relacionada ao `autoloader` do `Composer` através da configuração no `composer.json` 93 | 94 | `[composer.json]` 95 | ``` 96 | (...) 97 | "autoload": { 98 | "psr-4": { 99 | "App\\": "app/src/" 100 | } 101 | } 102 | (...) 103 | ``` 104 | Ou seja, o namespace padrão que você irá utilizar é o `App` e o arquivo deverá estar dentro da pasta descrita acima. Obviamente você pode modificar isso. Note que usando a convenção `PSR-4` quando você criar um documento com o `namespace` adequado poderá usá-lo de forma transparente. Entraremos em mais detalhes sobre isso na seção de composição de estruturas. 105 | 106 | ## /storage 107 | Como forma de indicar um caminho inicial sugerimos essa pasta chamada `storage` na raiz do projeto para a manutenção de documentos que não podem ficar abertos ao acesso público. 108 | 109 | ## /vendor 110 | A pasta `vendor` é criada automaticamente pelo `Composer`. Ela tem as dependências que seu projeto irá utilizar e as configurações de carregamentos de arquivos. Ela está por padrão configurada no arquivo `.gitignore` para ser ignorada pelo `Git` 111 | 112 | ## Iniciando os Trabalhos 113 | ### Criando rotas 114 | 115 | A configuração de qual a primeira rota (ou quais as primeiras rotas) será chamada fica por padrão dentro de `app/config/route.php`. 116 | 117 | As configurações de acesso aos recursos da aplicação podem ser feitas nos arquivos de rotas. Os comandos podem ser escritos diretamente no corpo do arquivo (onde uma variável $router estará disponível por questões de escopo) ou usando o retorno de closures que recebem o $router como parâmetro. 118 | 119 | Rotas simples 120 | ```php 121 | return function($router) { 122 | 123 | $router->on('GET', '/', function() { 124 | return 'Hello World!'; 125 | }); 126 | } 127 | ``` 128 | 129 | Rotas dinâmicas 130 | ```php 131 | return function($router) { 132 | 133 | $router->get('/:controller/:method', function($controller, $method) { 134 | return 'Hello World!'; 135 | }); 136 | } 137 | ``` 138 | 139 | Grupos de Rotas 140 | ```php 141 | return function($router) { 142 | 143 | // lista com arquivos de rota 144 | $router->group('GET', '/site', ['more/files/routes.php', 'more/files/site.php']); 145 | 146 |    // pasta que contém arquivos de rotas 147 | $router->group('*', '/api', 'api/routes'); 148 | } 149 | ``` 150 | 151 | Rotas com Interação com Controllers 152 | ```php 153 | return function($router) { 154 | 155 | $router->post('/client/save', '\Namespace\ClientController@save'); 156 | $router->resource('client', '\Namespace\ClientController'); 157 | } 158 | ``` 159 | Um `$router->resource` vai criar:
160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 242 | 243 | 244 | 245 | 246 |
Verb Path Action Route Name
GET 171 | 172 | /route 173 | 174 | indexroute.index
GET 182 | 183 | /route/create 184 | 185 | createroute.create
GET 193 | 194 | /route/{id} 195 | 196 | showroute.show
GET 204 | 205 | /route/{id}/edit 206 | 207 | editroute.edit
POST 216 | 217 | /route 218 | 219 | storeroute.store
PUT/PATCH 227 | 228 | /route/{id} 229 | 230 | updateroute.update
DELETE 238 | 239 | /route/{id} 240 | 241 | destroyroute.destroy
247 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-slate -------------------------------------------------------------------------------- /app/resources/email/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpzm/simples/56d12819b23e5009590be377747e299856d42127/app/resources/email/.gitkeep -------------------------------------------------------------------------------- /app/resources/locales/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpzm/simples/56d12819b23e5009590be377747e299856d42127/app/resources/locales/.gitkeep -------------------------------------------------------------------------------- /app/resources/locales/en/error.php: -------------------------------------------------------------------------------- 1 | 'Page not found' 5 | ]; 6 | -------------------------------------------------------------------------------- /app/resources/locales/pt-br/error.php: -------------------------------------------------------------------------------- 1 | 'Página não encontrada' 5 | ]; 6 | -------------------------------------------------------------------------------- /app/resources/view/_layout/basic/body.php: -------------------------------------------------------------------------------- 1 | 4 | 5 | grant('body'); 7 | ?> 8 | -------------------------------------------------------------------------------- /app/resources/view/_layout/basic/head.php: -------------------------------------------------------------------------------- 1 | get('title'); 6 | $title = $app . ' / ' . ($title ? $title : 'phpZM'); 7 | 8 | ?> 9 | 10 | 11 | 12 | 13 | 14 | 15 | <?php out($title) ?> 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /app/resources/view/_layout/basic/html.php: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | append('_layout/basic/head.php'); 8 | $this->append('_layout/basic/body.php'); 9 | ?> 10 | -------------------------------------------------------------------------------- /app/resources/view/index.php: -------------------------------------------------------------------------------- 1 | extend('_layout/basic/html.php', 'body'); 5 | ?> 6 |
7 |
8 | 9 |
10 |
11 | simples 12 |
13 |
14 | 19 |
20 |
21 | -------------------------------------------------------------------------------- /app/resources/view/whoops.php: -------------------------------------------------------------------------------- 1 | extend('_layout/basic/html.php', 'body'); 5 | 6 | return function ($data = []) { 7 | ?> 8 |
9 |
10 |
11 | building 12 |
13 |
14 |
15 | get('/',[View::class, 'home']); 13 | 14 | // whoops, not found 15 | $router->otherWise('*', View::class); 16 | }; 17 | -------------------------------------------------------------------------------- /app/src/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpzm/simples/56d12819b23e5009590be377747e299856d42127/app/src/.gitkeep -------------------------------------------------------------------------------- /app/src/Controller/View.php: -------------------------------------------------------------------------------- 1 | view('index.php'); 20 | } 21 | 22 | /** 23 | * @return \Simples\Http\Response 24 | */ 25 | function __invoke() 26 | { 27 | $data = [ 28 | 'title' => Lang::get('error', 'page-not-found') 29 | ]; 30 | return $this->view('whoops.php', $data); 31 | } 32 | 33 | } -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "phpzm/simples", 3 | "type": "project", 4 | "minimum-stability": "dev", 5 | "version": "0.1.6", 6 | "license": "MIT", 7 | "authors": [ 8 | { 9 | "name": "William", 10 | "email": "wilcorrea@gmail.com" 11 | } 12 | ], 13 | "require": { 14 | "phpzm/core": "^1.0.0" 15 | }, 16 | "autoload": { 17 | "psr-4": { 18 | "App\\": "app/src/" 19 | } 20 | }, 21 | "config": { 22 | "process-timeout": 86400 23 | }, 24 | "scripts": { 25 | "symlink": "sudo ln -s \"$(pwd)/simples\" /usr/bin/simples", 26 | "env:init": "cp .env.sample .env", 27 | "docker:init": "cp docker-compose.yml.sample docker-compose.yml", 28 | "docker:serve": "docker-compose up", 29 | "php:serve": "php -S localhost:8080 -t public/" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /config/app.php: -------------------------------------------------------------------------------- 1 | 'Simples', 5 | 'url' => env('CLIENT_DEFAULT_URL'), 6 | 'namespace' => 'App\\', 7 | 'src' => 'app/src/', 8 | 'assets' => 'public/assets', 9 | 'resources' => [ 10 | 'root' => 'app/resources', 11 | ], 12 | 'storage' => [ 13 | 'root' => 'storage', 14 | ], 15 | 'status' => [ 16 | 'success' => 200, 17 | 'notFound' => 404, 18 | 'notImplemented' => 501, 19 | 'fail' => 500, 20 | ], 21 | ]; 22 | -------------------------------------------------------------------------------- /config/cors.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'http://localhost', 6 | 'http://localhost:80', 7 | 'http://localhost:8080', 8 | ] 9 | ]; 10 | -------------------------------------------------------------------------------- /config/database.php: -------------------------------------------------------------------------------- 1 | [ 7 | 'driver' => MySQL::class, 8 | 'host' => env('MYSQL_DEFAULT_HOST'), 9 | 'database' => env('MYSQL_DEFAULT_DATABASE'), 10 | 'port' => env('MYSQL_DEFAULT_PORT'), 11 | 'user' => env('MYSQL_DEFAULT_USER'), 12 | 'password' => env('MYSQL_DEFAULT_PASSWORD'), 13 | 'options' => [ 14 | PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8" 15 | ] 16 | ] 17 | ]; 18 | -------------------------------------------------------------------------------- /config/defaults.php: -------------------------------------------------------------------------------- 1 | [ 12 | 'property' => 'value' 13 | ] 14 | ]; 15 | -------------------------------------------------------------------------------- /config/mail.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'host' => env('SMTP_DEFAULT_HOST'), 6 | 'port' => env('SMTP_DEFAULT_PORT'), 7 | 'secure' => env('SMTP_DEFAULT_SECURE'), 8 | 'user' => env('SMTP_DEFAULT_USER'), 9 | 'password' => env('SMTP_DEFAULT_PASSWORD'), 10 | 'address' => '', 11 | 'name' => '' 12 | ] 13 | ]; 14 | -------------------------------------------------------------------------------- /config/route.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'app/routes/index.php' 6 | ] 7 | ]; 8 | -------------------------------------------------------------------------------- /docker-compose.yml.sample: -------------------------------------------------------------------------------- 1 | # v2 syntax 2 | version: '2' 3 | 4 | services: 5 | 6 | simples.mysql: 7 | image: ambientum/mysql:5.7 8 | container_name: simples.mysql 9 | volumes: 10 | - ./.docker/mysql:/var/lib/mysql 11 | ports: 12 | - "3306:3306" 13 | environment: 14 | - MYSQL_ROOT_PASSWORD=root 15 | - MYSQL_DATABASE=database 16 | - MYSQL_USER=user 17 | - MYSQL_PASSWORD=password 18 | 19 | simples.apache: 20 | image: ambientum/php:7.0-apache 21 | container_name: simples.apache 22 | volumes: 23 | - .:/var/www/app 24 | ports: 25 | - "8080:8080" 26 | links: 27 | - simples.mysql 28 | -------------------------------------------------------------------------------- /phpmd.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | Simples PHP Mess Detector 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /public/.htaccess: -------------------------------------------------------------------------------- 1 | Options +FollowSymLinks 2 | 3 | RewriteEngine On 4 | RewriteCond %{REQUEST_FILENAME} !-f 5 | RewriteCond %{REQUEST_FILENAME} !-d 6 | RewriteRule ^(.*)$ index.php [NC,L] 7 | -------------------------------------------------------------------------------- /public/assets/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpzm/simples/56d12819b23e5009590be377747e299856d42127/public/assets/favicon.ico -------------------------------------------------------------------------------- /public/assets/images/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpzm/simples/56d12819b23e5009590be377747e299856d42127/public/assets/images/.gitkeep -------------------------------------------------------------------------------- /public/assets/images/building.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpzm/simples/56d12819b23e5009590be377747e299856d42127/public/assets/images/building.png -------------------------------------------------------------------------------- /public/assets/images/favicon/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpzm/simples/56d12819b23e5009590be377747e299856d42127/public/assets/images/favicon/android-chrome-192x192.png -------------------------------------------------------------------------------- /public/assets/images/favicon/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpzm/simples/56d12819b23e5009590be377747e299856d42127/public/assets/images/favicon/android-chrome-512x512.png -------------------------------------------------------------------------------- /public/assets/images/favicon/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpzm/simples/56d12819b23e5009590be377747e299856d42127/public/assets/images/favicon/apple-touch-icon.png -------------------------------------------------------------------------------- /public/assets/images/favicon/browserconfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | #8bbcff 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /public/assets/images/favicon/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpzm/simples/56d12819b23e5009590be377747e299856d42127/public/assets/images/favicon/favicon-16x16.png -------------------------------------------------------------------------------- /public/assets/images/favicon/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpzm/simples/56d12819b23e5009590be377747e299856d42127/public/assets/images/favicon/favicon-32x32.png -------------------------------------------------------------------------------- /public/assets/images/favicon/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpzm/simples/56d12819b23e5009590be377747e299856d42127/public/assets/images/favicon/favicon.ico -------------------------------------------------------------------------------- /public/assets/images/favicon/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "phpZM", 3 | "icons": [ 4 | { 5 | "src": "/android-chrome-192x192.png", 6 | "sizes": "192x192", 7 | "type": "image/png" 8 | }, 9 | { 10 | "src": "/android-chrome-512x512.png", 11 | "sizes": "512x512", 12 | "type": "image/png" 13 | } 14 | ], 15 | "theme_color": "#8bbcff", 16 | "background_color": "#8bbcff", 17 | "display": "standalone" 18 | } -------------------------------------------------------------------------------- /public/assets/images/favicon/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpzm/simples/56d12819b23e5009590be377747e299856d42127/public/assets/images/favicon/mstile-150x150.png -------------------------------------------------------------------------------- /public/assets/images/favicon/safari-pinned-tab.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | Created by potrace 1.11, written by Peter Selinger 2001-2013 9 | 10 | 12 | 62 | 70 | 82 | 84 | 90 | 97 | 103 | 107 | 108 | 110 | 111 | 112 | -------------------------------------------------------------------------------- /public/assets/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpzm/simples/56d12819b23e5009590be377747e299856d42127/public/assets/images/logo.png -------------------------------------------------------------------------------- /public/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpzm/simples/56d12819b23e5009590be377747e299856d42127/public/assets/logo.png -------------------------------------------------------------------------------- /public/assets/scripts/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpzm/simples/56d12819b23e5009590be377747e299856d42127/public/assets/scripts/.gitkeep -------------------------------------------------------------------------------- /public/assets/styles/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpzm/simples/56d12819b23e5009590be377747e299856d42127/public/assets/styles/.gitkeep -------------------------------------------------------------------------------- /public/assets/styles/style.css: -------------------------------------------------------------------------------- 1 | html, body { 2 | background-color: #fff; 3 | color: #636b6f; 4 | font-family: 'Raleway', sans-serif; 5 | font-weight: 100; 6 | height: 100vh; 7 | margin: 0; 8 | } 9 | 10 | hr { 11 | margin: 32px 0; 12 | border: 0; 13 | height: 2px; 14 | background-image: linear-gradient(to right, rgba(0, 0, 0, 0.02), rgba(210, 210, 210, 0.75), rgba(0, 0, 0, 0.02)); 15 | } 16 | 17 | .logo { 18 | max-height: 128px; 19 | } 20 | 21 | .full-height { 22 | height: 100vh; 23 | } 24 | 25 | .flex-center { 26 | align-items: center; 27 | display: flex; 28 | justify-content: center; 29 | } 30 | 31 | .position-reference { 32 | position: relative; 33 | } 34 | 35 | .top-right { 36 | position: absolute; 37 | right: 10px; 38 | top: 18px; 39 | } 40 | 41 | .content { 42 | text-align: center; 43 | min-width: 60%; 44 | } 45 | 46 | .title { 47 | font-size: 72px; 48 | } 49 | 50 | .links { 51 | margin: 64px 0 0 0; 52 | } 53 | 54 | .links > a { 55 | color: #636b6f; 56 | padding: 0 32px; 57 | font-size: 12px; 58 | font-weight: 600; 59 | letter-spacing: .1rem; 60 | text-decoration: none; 61 | text-transform: uppercase; 62 | } -------------------------------------------------------------------------------- /public/index.php: -------------------------------------------------------------------------------- 1 | dirname(__DIR__), 9 | 'strict' => true, 10 | 'lang' => [ 11 | 'default' => 'pt-br', 12 | 'fallback' => 'en' 13 | ] 14 | ]; 15 | 16 | $app = new App($options); 17 | 18 | $app->http(); 19 | -------------------------------------------------------------------------------- /simples: -------------------------------------------------------------------------------- 1 | #!/usr/bin/php -q 2 | __DIR__ 16 | ]; 17 | 18 | $app = new App($options); 19 | 20 | $app->cli($service); 21 | -------------------------------------------------------------------------------- /storage/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpzm/simples/56d12819b23e5009590be377747e299856d42127/storage/.gitkeep --------------------------------------------------------------------------------