Tive oportunidade de ver minha irm\u00e3 mais nova andar sozinha pela primeira vez e nunca mais esqueci da experi\u00eancia. \u00a0Anos depois naceram os filhos e o impacto \u00e9 tremendo.<\/p>\n
Brinco com quem programa usando YeAPF de que s\u00e3o meus filhos, carinhosamente. Por isso que os primeiros passos s\u00e3o importantissimos para mim. \u00a0Tentarei resumir ent\u00e3o em poucos passos os primeiros a serem dados para botar o YeAPF para rodar que ser\u00e3o os seguintes: 1) Instala\u00e7\u00e3o dos pacotes b\u00e1sicos para que o YeAPF rode 2) Cria\u00e7\u00e3o de um banco de dados de testes 3) Instala\u00e7\u00e3o do YeAPF 4) Elabora\u00e7\u00e3o do seu primeiro aplicativo.\u00a0 Como um passo depende do outro, n\u00e3o avance se n\u00e3o conseguiu resolver o passo anterior.<\/p>\n
Para chegar a bom porto, este exemplo precisa que sua m\u00e1quina (Linux ou Windows) esteja com os seguintes pacotes instalados: apache2, php5, mysql-server e php5-mysql. \u00a0Ou resumindo: LAMP<\/p>\n
Em linux<\/span><\/strong> (no caso Ubuntu) a instala\u00e7\u00e3o \u00e9 simples:<\/p>\n J\u00e1 em Windows<\/span><\/strong>, usamos UwAMP que pode ser obtido em\u00a0http:\/\/www.uwamp.com\/en\/<\/a><\/p>\n Seja l\u00e1 como for, o importante \u00e9 voc\u00ea saber qual \u00e9 sua pasta base de desenvolvimento.\u00a0 No caso de uma instala\u00e7\u00e3o t\u00edpica Ubuntu\/Debian esta pasta est\u00e1 em \/var\/www<\/strong>.\u00a0 J\u00e1 se instalou em CentOS\/RHEL\/Fedora esta mesma pasta se chama \/var\/www\/html<\/strong> e, finalmente, se usou UwAMP e instalou em C:\\UwAMP, ent\u00e3o sua pasta base ser\u00e1 C:\\UwAMP\\www<\/strong>.\u00a0\u00a0 Imagino que se est\u00e1 lendo isto, ter\u00e1 suficiente estrutura como para achar por pr\u00f3prias m\u00e3os onde est\u00e1 sua pasta base.\u00a0 Para facilitar a escrita deste blog, assumirei uma instala\u00e7\u00e3o em Ubuntu cuja pasta base \u00e9 \/var\/www<\/strong>.\u00a0 Ajuste para o seu caso particular.<\/p>\n Para editarmos o c\u00f3digo fonte usamos Geany<\/a> que roda tanto em Windows como em Linux, por\u00e9m, em Windows alguns preferem Notepad++<\/a> que \u00e9 uma outra excelente op\u00e7\u00e3o.\u00a0 Ah, sim, n\u00e3o usamos NetBeans<\/a>, Eclipse<\/a>, etc..\u00a0 Sim, nem para depurar.\u00a0 Todavia, temos nossos olhos postos em WebStorm<\/a> caso queira saber se somos loucos escovadores de bits.<\/p>\n Como n\u00e3o \u00e9 o foco deste blog falar sobre seguran\u00e7a de banco de dados, assumirei que estaremos usando o usu\u00e1rio ‘root<\/strong>‘ com a senha ‘abc123<\/strong>‘\u00a0 definida durante a instala\u00e7\u00e3o. Mais uma vez, fa\u00e7a os ajustes necess\u00e1rios para o seu caso durante a leitura.\u00a0 E n\u00e3o confunda o usu\u00e1rio root<\/em> da sua caixa Linux<\/em> com o usu\u00e1rio root<\/em> do mysql.<\/p>\n Cabe esclarecer que se voc\u00ea estiver testando em um servidor alugado, seu nome de acesso, senha e IP de conex\u00e3o ser\u00e3o definidos pelo administrador do servidor ou por voc\u00ea mesmo usando as ferramentas que seu hospedeiro lhe disponibilize.<\/p>\n Fa\u00e7a download do banco de dados de demonstra\u00e7\u00e3o clicando aqui<\/a> e crie um banco de testes no seu servidor mysql instalado logo acima.<\/p>\n Caso esteja usando Linux, os seguintes passos (grifados em negrito para facilitar a compreens\u00e3o) devem ser suficientes.\u00a0 Lembre que estamos pensando em uma distribui\u00e7\u00e3o Ubuntu\/Debian em que os downloads caem na pasta do usu\u00e1rio chamada Downloads <\/em>(com a primeira ‘D’ em maiusculas).\u00a0 Se estiver usando CentOS\/RHEL a pasta chamar-se-ia downloads<\/em>.\u00a0 Para os recem iniciados, lembre de dar um enter ap\u00f3s cada comando, o $<\/em> \u00e9 o s\u00edmbolo do sistema (que pode ser diferente na sua distribui\u00e7\u00e3o) e ele \u00e9 sens\u00edvel \u00e0s minusculas, maiusculas.<\/p>\n Para quem est\u00e1 fazendo com Windows e instalou UwAMP, pode conectar-se ao banco de dados por meio do console (Iniciar | Executar | cmd) da seguinte forma:<\/p>\n (Observe que n\u00e3o h\u00e1 espa\u00e7o entre o par\u00e2metro ‘-p’ e a senha ‘root’. \u00a0Em tempo, a senha padr\u00e3o que o UwAMP faz para o mysql \u00e9 root<\/strong>) <\/em><\/p>\n A partir dai os passos s\u00e3o os mesmos que para um usu\u00e1rio Linux como se detalham a continua\u00e7\u00e3o:<\/p>\n Uma mensagem de advert\u00eancia do mysql dizendo que \u00e9 inseguro colocar a senha na linha de comando \u00e9 comum na execu\u00e7\u00e3o deste \u00faltimo comando<\/p>\n Caso n\u00e3o tenha instalado o unzip<\/em>\u00a0no linux ent\u00e3o, instale ele com<\/p>\n Repare que nos comandos mysql h\u00e1 um espa\u00e7o entre o par\u00e2metro e a op\u00e7\u00e3o do par\u00e2metro como em -u root<\/em>. A exce\u00e7\u00e3o \u00e9 quando estamos indicando a senha como em -pabc123<\/em>.\u00a0 Lembre, contudo, de substituir abc123 pela senha que voc\u00ea colocou na hora da instala\u00e7\u00e3o no seu mysql.<\/p>\n Como sempre, o exemplo j\u00e1 \u00e9 simples o suficiente para evitar o degradante copiar e colar de muitos hoje em dia.\u00a0 Ent\u00e3o gaste um pouco mais do seu tempo e fixe os comandos na sua cachola digitando eles.<\/p>\n Todavia, se chegou at\u00e9 aqui, uma boa recompensa \u00e9 lhe indicar que instalando phpMyAdmin<\/a>\u00a0a gest\u00e3o do banco fica bem mais f\u00e1cil tanto em Linux quanto em Windows. \u00a0Para Windows, a melhor recomenda\u00e7\u00e3o \u00e9 HeidiSQL<\/a><\/p>\n Fa\u00e7a download da \u00faltima vers\u00e3o do YeAPF.\u00a0 Na hora de escrever este blog, estamos na vers\u00e3o 0.8.25<\/a>. Mas o exemplo aqui entregue deve funcionar bem desde a vers\u00e3o 0.8.0 em diante.<\/p>\n Descompacte o conte\u00fado do arquivo para uma pasta sob a sua pasta base.\u00a0 Costumamos colocar o YeAPF sob \/var\/www\/YeAPF\/<\/strong> nos Ubuntu\/Debian mas nada impede de colocar ele em outra pasta da sua preferencia, inclusive em uma subpasta de um projeto YeAPF.\u00a0 (\u00e9.. o pr\u00f3prio framework<\/em> embarcado na pr\u00f3pria pasta do aplicativo… ainda n\u00e3o viu nada meu chapa). \u00a0Por\u00e9m, por hora, deixe ele na pasta padr\u00e3o\u00a0\/var\/www\/YeAPF<\/strong> se estiver em Ubuntu ou\u00a0C:\\UwAMP\\www\\YeAPF <\/strong>se estiver usando Windows Em Ubuntu\/Debian ficaria assim:<\/p>\n Voc\u00ea ter\u00e1 certeza de que o YeAPF est\u00e1 no local correto se o arquivo xYApp.js<\/em> est\u00e1 na pasta que voc\u00ea tenciona usar.<\/p>\n A turma do arrastar e soltar j\u00e1 se vira sozinha para soltar os arquivos no local certo.<\/p>\n Como esta pasta ser\u00e1 de s\u00f3 leitura, n\u00e3o h\u00e1 necessidade de corrigir os direitos da pasta.\u00a0 De qualquer forma, vale o aviso para manter a amizade de que \u00e0s vezes precisamos entregar a pasta inteira (arquivos, sub pastas) para o apache2 controlar.<\/p>\n Isto feito, seu YeAPF est\u00e1 pronto para ser usado.\u00a0 Vale destacar que o procedimento se o seu servidor \u00e9 local ou remoto, se for acess\u00edvel por ssh, console local ou ftp,\u00a0 \u00e9 similar.\u00a0 J\u00e1 se quiser instalar as ferramentas do YeAPF o procedimento \u00e9 um pouco diferente mas nada que provoque taquicardia.<\/p>\n Ufa!… At\u00e9 que enfim.\u00a0 Neste primeiro momento, faremos uma coisa muito simples, que \u00e9 mostrar o conte\u00fado da tabela autores<\/em> que est\u00e1 no banco de testes.\u00a0 O faremos usando o modelo preprocessado que \u00e9 aquele que ensambla <\/a>os dados e a visualiza\u00e7\u00e3o no servidor antes de envi\u00e1-los para o cliente.\u00a0 YeAPF tamb\u00e9m faz p\u00f3s-processado e MVC mas isso \u00e9 farinha de outro saco.<\/p>\n Seguiremos os seguintes passos: a) Cria\u00e7\u00e3o da pasta para conter meu aplicativo b) Configura\u00e7\u00e3o da conex\u00e3o com o banco de dados c) Elabora\u00e7\u00e3o dos dois arquivos que comp\u00f5em meu aplicativo<\/p>\n Digamos que seu aplicativo vai se chamar meuPrimeiroApp<\/em>, ent\u00e3o precisamos criar uma pasta sob a pasta base do apache<\/p>\n Isso far\u00e1 com que quando voc\u00ea navegar usando seu navegador preferido (que pode ser escolhido do conjunto finito: Mozilla, Safari, Chrome, nessa ordem) poder\u00e1 visualizar o conte\u00fado da pasta com http:\/\/localhost\/meuPrimeiroApp<\/a>. E qualquer arquivo que voc\u00ea colocar na pasta, aparecer\u00e1 na navega\u00e7\u00e3o.<\/p>\n Para facilitar o desenvolvimento, reduziremos o n\u00edvel de seguran\u00e7a da pasta, por\u00e9m, mais uma vez, vale dizer que este n\u00e3o \u00e9 um blog orientado \u00e0 seguran\u00e7a.\u00a0 Quando chegue o momento, falaremos disso.<\/p>\n Agora vamos copiar dois arquivos (configure.php<\/em> e yeapf.db.ini<\/em>) para dentro da pasta.\u00a0 Isso \u00e9 tudo o que vamos precisar para que o YeAPF rode certinho.<\/p>\n Nota para YeAPF 0.8.5x<\/strong>:\u00a0<\/em>Indique ao configure.php onde localizar o YeAPF. Para isso, use o arquivo search.path ou yeapf.path no mesmo n\u00edvel que o configure.php. Neste exemplo, esse arquivo conter\u00e1 uma linha dizendo apenas: “..\/YeAPF”<\/p><\/blockquote>\n Antes de rodar o configure.php<\/em>, altere os seguintes valores no yeapf.db.ini<\/em><\/p>\n Lembre que os valores aqui colocados tem a ver com o restante do exemplo.\u00a0 Ou seja, se seu banco n\u00e3o for mysql, ou n\u00e3o estiver no mesmo em que o apache est\u00e1 ou n\u00e3o se chamar testes ou n\u00e3o usar pepe\/abc123 para conectar, voc\u00ea dever\u00e1 fazer as altera\u00e7\u00f5es necess\u00e1rias<\/p>\n Ap\u00f3s feito isso, rode o configure usando seu navegador acessando http:\/\/localhost\/meuPrimeiroApp\/configure.php<\/a><\/p>\n Se tudo deu certo, voc\u00ea ver\u00e1 uma tela com uma tarja verde dizendo que est\u00e1 tudo ok.\u00a0 Na sua pasta agora ter\u00e3o sido criadas mais algumas pastas e arquivos auxiliares.\u00a0 \u00c9 de especial import\u00e2ncia o sgug.ini<\/em> que \u00e9 o que controla a conex\u00e3o com o banco de dados.\u00a0 yeapf.db.ini<\/em> j\u00e1 pode ser apagado.<\/p>\n Agora vamos ao que interessa (s\u00f3 agora!?)\u00a0 Vamos r\u00e1pido ent\u00e3o.<\/p>\n$ sudo apt-get install apache2 mysql-server php5 php5-mysql<\/strong><\/pre>\n
2) Cria\u00e7\u00e3o de um banco de dados de testes<\/h2>\n
C:\\Users\\Pepe> cd c:\\UwAMP\\bin\\database\\mysql-5.6.11\\bin<\/strong>\r\nC:\\UwAMP\\bin\\database\\mysql-5.6.11\\bin> mysql -u root -proot<\/strong><\/pre>\n
$ mysql -u root -pabc123<\/strong>\r\nWelcome to the MySQL monitor.\u00a0 Commands end with ; or \\g.\r\nYour MySQL connection id is 747\r\nServer version: 5.5.34-0ubuntu0.13.04.1 (Ubuntu)\r\n\r\nCopyright (c) 2000, 2013, Oracle and\/or its affiliates. All rights reserved.\r\n\r\nOracle is a registered trademark of Oracle Corporation and\/or its\r\naffiliates. Other names may be trademarks of their respective\r\nowners.\r\n\r\nType 'help;' or '\\h' for help. Type '\\c' to clear the current input statement.\r\n\r\nmysql> create database testes;<\/strong>\r\nQuery OK, 1 row affected (0.00 sec)\r\n\r\nmysql> grant all on testes.* to pepe@localhost identified by 'abc123';<\/strong>\r\n\r\nmysql> exit<\/strong>\r\nBye<\/pre>\n
$ cd<\/strong>\r\n$ unzip Downloads\/baseTestes.zip\r\n<\/strong>$ mysql -u pepe -pabc123 testes < baseTestes.sql<\/strong> \r\n<\/pre>\n
$ sudo apt-get install zip unzip<\/strong><\/pre>\n
3) Instala\u00e7\u00e3o do YeAPF<\/h2>\n
\n<\/span><\/p>\n$ cd \/tmp<\/strong>\r\n$ wget http:\/\/www.inovacaosistemas.com.br\/downloads\/YeAPF\/YeAPF-0.8.25.zip<\/strong>\r\n$ mkdir -p \/var\/www\/YeAPF<\/strong>\r\n$ cd \/var\/www\/YeAPF<\/strong>\r\n$ unzip \/tmp\/YeAPF-0.8.25.zip<\/strong><\/pre>\n
4) Elabora\u00e7\u00e3o do seu primeiro aplicativo<\/h2>\n
4.a) Cria\u00e7\u00e3o da pasta para conter meu aplicativo<\/h3>\n
$ mkdir \/var\/www\/meuPrimeiroApp<\/strong><\/pre>\n
$ chmod 0777 -fR \/var\/www\/meuPrimeiroApp<\/strong><\/pre>\n
$ cd \/var\/www\/meuPrimeiroApp\r\n<\/strong>$ cp \/var\/www\/YeAPF\/appSkeleton\/configure.php .<\/strong>\r\n$ cp \/var\/www\/YeAPF\/appSkeleton\/yeapf.db.ini<\/strong> .<\/pre>\n
4.b) Configura\u00e7\u00e3o da conex\u00e3o com o banco de dados<\/h3>\n
dbType=mysql<\/strong>\r\ndbServer=localhost<\/strong>\r\ndbName=testes<\/strong>\r\ndbUser=pepe<\/strong>\r\ndbPassword=abc123<\/strong>\r\ndbConnect=yes<\/strong><\/pre>\n
<\/a>Caso esteja usando Windows, crie uma pasta chamada “.config<\/em>” sob sua pasta “meuPrimeiroApp<\/em>“. \u00a0Dentro desta pasta “.config<\/em>“, crie um arquivo texto chamado “lock_version<\/em>” contendo “1”. \u00a0Por padr\u00e3o YeAPF tenta usar mem\u00f3ria compartilhada para as travas de concorr\u00eancia. \u00a0A n\u00e3o ser que esteja usando um NT (2003, 2008, …) seu sistema operacional n\u00e3o suporta bem mem\u00f3ria compartilhada no PHP. \u00a0Esse “1” no “.config\/lock_version<\/em>” for\u00e7a a usar arquivos tempor\u00e1rios.<\/p>\n4.c) Elabora\u00e7\u00e3o dos dois arquivos que comp\u00f5em meu aplicativo<\/h3>\n