Robson, chegou bem onde eu precisava, e esse material que você desenvolveu realmente é excepcional, eu estava usando o Slim framework para rotas, porque havia visto em outros cursos, porém eu sempre encontrava barreiras, porque não conseguia configurar por exemplo uma url base, ele ja pegava automaticamente, e isso acabava gerando diversos problemas, fora que eu não conseguia resgatar esses erros posteriormente, e o melhor dessa aula é que eu consegui pegar bem como funciona essa questão do MVC e como todo esse material conversa entre si. valeu, estou ansioso para os próximos conteúdos #phptips
Boa noite, mestre, Estou estudando novamente o curso FSPHP com toda calma e já esta aparecendo novos projetos para fazer , onde nesse curso esta dando mais visão, para criação do sistema. Mais com essa explicação, que é FODA.. não tem como dizer que é dificil.. Parabens e #BORAFSPHP.......... JUSTO SEMPRE ( UBUNTU )
Boa Noite Robson, estou agregando conhecimento com mais essa série sua, muito bom o conteúdo. Parabéns e obrigado! Especificamente nessa aula Perdi um tempo bom, pois não funcionava logo no início, no retorno de erros e percebi que era o .htaccess, então segue a dica: Dentro do arquivo de configuração do Apache (/etc/httpd/conf/httpd.conf) procure pela diretiva e altere o trecho... ------------------------------- AllowOverride None para... AllowOverride All ------------------------------ Isso pra quem tá no ambiente localhost. ;--)
Fala ai, galera!! Adorei o curso, na real ainda fazendo, mas curtindo muito! Vou fazer também o curso da upinside. Essa parte do curso é como se fosse o routes/web.php do Laravel né :)
Parabéns pelo conteúdo! Se continuar assim vou me inscrever no Curso. Ótimo! Vou continuar a playlist para ver se tem a implementação do framework com a camada de visão para renderizar os templates. ;)
bom acho a sua aula sem duvida ótima se vc consegui se no final cria se uma aula com todos os exemplos trabalhando juntos e se vc poder usar as nomeclaturas do mvc acho que ficaria mais facil do que cria a nossa propria estrutura sei la tmj sempre
Olá tudo bem? nesta sua biblioteca, existem métodos para obter dados do header, obter o body de um post, e respostas como por exemplo forçar um status code? sua explicação ficou bem clara, estou tentando adaptar um projeto de APi meu que já funciona neste seu modelo de rotas, eu tenho alguns métodos que fazem isso que lhe perguntei, mas gostaria que já fossem acoplados a biblioteca.
Robson, sensacional, agradeço muito pelo conhecimento e profissionalismo. Você pode apresentar como utilizar o Plates junto? Um grande abraço e mais uma vez muito obrigado.
Eu estou passando por esse mesmo problema 22.05.23... Fiz a atualização do meu PHP para 8.1 mas minha aplicação ainda está entrando em looop e da erro de direcionamento 400 ou 404.. quando eu comento o redirecionamento consigo debugar o trecho..mas não saio disso me deem um help..ja ate peguei um projeto em branco para fazer apenas as rotas mas não saio disso..
Ainda funciona? estou fazendo igual a aula mais estou tendo problemas as paginas 404 retornam ERR_TOO_MANY_REDIRECTS e não consigo utilizar as classes dos controladores mesmo definindo os namespace. Obrigado
Pessoal, com esse componente não consigo fazer, por exemplo, isso na url: /sistema?user=teste ? E aí pegar no controller o $_GET['user'] ? Tentando aqui, mas não estou conseguindo...
Boa tarde! Show de bola Robson! Seria bom uma aula agora usando o Model para gerenciamento com banco de dados nessa mesma estrutura ai que voce mostrou! Seria possivel?
Robson, como cria uma regra no htaccess para URL's amigáveis fora da rota? Tentei criar com [OR] ou [L,NC], refiz o [OR] e [L,R=301] mas nada, acaba caindo tudo em int(404), por exemplo /outra/path/arquivo.php, não é reconhecida.
Mestre, já que fez abstração de banco e rotas está faltando de template engine (embora eu gostaria de ver outros componentes antes) mas gostaria de ver outros templates engine para conhecer, pois só conheço o plates
Fala Robson blz?! Estou acompanhando esta aula, mas na minha maquina nao esta chamando a url localhost/meu_projeto/contato. Apenas renderiza quando chama a index.php. Como posso resolver isto. Utilizo php7, apache24. valeu obg!
Olá. essa série me ajudou muito.. mudou meu mindset, e me introduziu para uma nova (e melhor) forma de desenvolvimento. Obrigado :) Notei que na sua máquina, você consegue rodar seus projetos com 'https'. Fazer isso me economizaria algumas linhas e algum tempo de configuração para rodar cada projeto. Como posso fazer isso rodar na minha máquina tb? ... Não sei se faz diferença, mas eu utilizo o Ubuntu
Professor essa biblioteca de rotas tem suporte a JSON? Estou usando o postman para passar um json, mas não esta chegando no controlador, estou usando um json_decode na variavel $data, mas da uma erro pedindo um parâmetro, é como se o json não estivesse chegando dentro do controlador. Alguem sabe oque pode estar acontecendo com a biblioteca router?
E se eu quiser inicializar meu servido com o servidor embutido do PHP? Usei o comando "php -S localhost:8000", e as rotas não funcionaram, a não ser a primeira. Sempre ficava na primeira.
@@CarlosHenrique-vx3bm Show. Funcionou. Mas em uma requisição GET, como acesso aos dados vindos por Query Params? o $_GET não tem nada dentro, e a variavel $data também não.
Criei essa função para pegar o valor de GET, mas gostaria de saber se a lib resolve isso pra mim mais facilmente. /** Retorna todos os valores do GET metodo **/ $values = array(); $uri = $_SERVER["REQUEST_URI"]; $uriExploded = explode("?", $uri); if (sizeof($uriExploded) > 1) { $queryParams = $uriExploded[1]; $fieldsAndValues = explode("&", $queryParams); foreach ($fieldsAndValues as $fieldAndValue) { $fieldAndValueExploded = explode("=", $fieldAndValue); $values[$fieldAndValueExploded[0]] = $fieldAndValueExploded[1]; } } return $values; }
@@allefdouglas9693 então amigo, passei por esse mesmo problema, não sei qual é sua necessidade, mas a minha eu resolvi assim Antes eu usava o slim framework e pegava as variáveis pela url, através do GET, algo como Url: www.mysite.com e chamava a url assim: www.mysite.com?var1=1&var2=2 Pelo router, eu tive que modificar a Url, ficou assim Url: www.mysite.com/{var1}/{var2} E passo www.mysite.com/1/2, A diferença é que essas variáveis ficam em um array $data, mas se for o caso é só atribuir o $data ao $_GET no início do Controller
@@CarlosHenrique-vx3bm só queria dizer obrigado por ter falado que o server embutido não funciona eu estou a mais de uma hora procurando na internet como resolver isso, tive o mesmo erro do ParzivalAD pelo menos agora eu sei que não tenho escolha a não ser colocar o projeto no htdocs mais uma vez, obrigado!
Excelente vídeo aula, só não entendi como faço uma autenticação de usuários nesse componente, por exemplo, no laravel e no slim framework por exemplo, é possível adicionar middlewares de autenticação, usando o router eu tbm consigo fazer isso?
Boas noites!!! Como sempre, mais um excelente vídeo. Porém estou no mesmo barco que um companheiro ai dos comentários: não sei se insisto, ou se desisto. Não consigo fazer estes redirecionamentos funcionarem. Pelo que estou entendendo o meu .htaccess não está fazendo seu papel. Quando acesso a base, vou para a home tranquilamente. Mas quando tento o primeiro exemplo que é "/contato/" só recebo msg de erro 404 do browser. O router parece não estar sendo executado.
5 лет назад+1
veja se o modulo MOD_REWRITE está habilitado no apache
qual o componente q vc utiliza Robson para renderizar template? eu utilizo RanTPL , tenho algumas dificuldade com ele , mais por não conhecer outro não sei qual o melhor
Quando tento usar o controller como no video simplesmente não funciona, retorna o error 400 alguem sabe se ainda funciona este coffeecode ? Estou com o PHP 7.2 e o coffeecode 1.07 HTACCEESS RewriteEngine On Options All -Indexes # ROUTER WWW Redirect. #RewriteCond %{HTTP_HOST} !^www\. [NC] #RewriteRule ^ www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] # ROUTER HTTPS Redirect #RewriteCond %{HTTP:X-Forwarded-Proto} !https #RewriteCond %{HTTPS} off #RewriteRule ^ %{HTTP_HOST}%{REQUEST_URI} [L,R=301] # ROUTER URL Rewrite RewriteCond %{SCRIPT_FILENAME} !-f RewriteCond %{SCRIPT_FILENAME} !-d RewriteRule ^(.*)$ index.php?route=/$1 [L,QSA] INDEX require __DIR__ . "/vendor/autoload.php"; use CoffeeCode\Router\Router; $router = new Router("localhost/raiz"); $router->namespace("App\Controllers"); $router->group(null); $router->get("/", "LoginController:login"); $router->dispatch(); if ($router->error()) { var_dump($router->error()); } CONTROLLER
Vc colocou esse namespace dentro do arquivo composer.json e rodou o composer update novamente? Ficaria algo do tipo: --------------------------------- "autoload": { "psr-4" : { "App\\" : "coloque/o/caminho/relativo/da/pasta/aqui" } } Obs.: Não sei se é útil para vc mas deve ser para alguém no futuro.
Eu desenvolvi um site usando os métodos do Robson e só da erro 400 de Bad Request. Meu arquivo no meu PC está funcionando tudo certo e eu criei duas variáveis uma URL_TESTE e outra URL_BASE na teste coloco o url do meu pc e na base o domínio da onde tá hospedado. Meu Composer tá ok, fiz testes mas não vai com naaada! Alguém ai sabe algo?
estou usando o Twig pra desenvolver meu View, na hora de passar parametros no href tipo se eu usar /{id} blz funciona de boa mas se eu precisar usar /{id}/{id2} ai ferro não faço ideia de como usar o 2° parametro a linha ficou assim : alguem pode me ajudar como resolver isso ???
Muito bom trabalhar com PHP com arquitetura MVC, mas me veio uma dúvida muito grande, desde do início dos meus aprendizados em PHP eu semprei utilizei a arquitetura MVC em meus projetos, como eu faria caso eu fosse desenvolver um projeto bem simples? Nesse caso, o uso de MVC seria necessário? Caso não fosse necessário como eu faria as estruturas das pastas?
deixa eu ver se e entendi a grosso modo podemos dizer que as urls ("amigáveis") são métodos de uma classe que são setados no index que pega o que esta escrito na própria URL ? mais como faço para por exemplo passar este caminho em um menu ? eu normalmente não me familiarizei com classe não consigo ver a tão dita "reaproveitação de código" mais entendo a sua necessidade talvez seja porque não devo mesmo ser programador e devo procura algo diferente mais gosto deste meio entao segue o baile mais fiquei com esta duvida porque estou tao acostumado ao Home que não consigo me desprender entende ?
Fiquei com uma dúvida, como faço para efetuar um redirect usando uma $handler pelo Controller criado? Porque no caso, a estrutura do seu MVC tem um $classRouter->redirect($route); mas não funciona usando uma classe $handler, tentei fazer um Encapsulamento e não deu certo, então fiz uma função adicional usando uma outra classe com um extends para utilizar uma função redirect criada. Como faço para usar a própria classe Router com um $handler e um redirect?
Infelizmente eu não consigo fazer o router funcionar de jeito nenhum... por algum motivo, não entra em nenhuma página além da home, nem a pagina de erro nem nenhuma outra. Eu acho que talvez seja pelo fato que estou executando o comando "php -S localhost:8000" minha única teoria é que não é compatível com esse tipo de url... Tem algum lugar que eu possa procurar saber sobre isso ? Mesmo assim acho seus vídeos super didáticos, e quero terminar esse PHP tips escrevendo tudo!
achei a "solução": basicamente esse servidor embutido do PHP não lê o arquivo .htaccess , então não tem como usar ele. Basicamente eu tive que colocar o arquivo na pasta htdocs igual ele fez, aí funcionou tudo certinho não sei se vai acontecer com alguém, mas deixo aí como eu resolvi
1 - Qual seria o componente responsável por retornar uma mensagem de erro para a view? Eu dei uma olhada no componente CoffeeCode/Router e no template League/Plates, ambos tem a opção de passar dados para a view, porém fiquei na dúvida, acredito que o certo seria com o Router utilizando o $this->router->redirect("name_rota", ["fail" => "mensagem"]), entretanto ao utilizar o método redirect do CoffeCode/Router, nada é retornado para view. 2 - No caso de um middleware de auth, seria possível implementar com o componente coffeeCode/Router? Eu vi uma pergunta dessa em um dos vídeos só não estou lembrado qual, porém não conseguir ver a resposta, por algum motivo em algumas perguntas não consigo ver as respostas dadas por vocês da UpInside.
Fala DEV. Cara, uso Apache 24 + PHP 7.3. Simplesmente o Router só funciona o ROOT do projeto $router->get("/"..., acredito que pela existência do index.php, porém, qualquer outra rota implementada, $router->get("/contato"...) ou $router->get("/ops/...")..., não funciona, só dá "Not Found". Fiz tudo certinho, várias vezes e nada. O que será isso !?!?!?!? Tô pensando em instalar o XAMP... Será que resolve !?!?!?
Silvio, vc conseguiu resolver esse problema ? ... Eu também fiz o código igual ao q o Robson fez. Mas, o meu também fica aparecendo o erro de "Not Found"! ... Se vc conseguiu resolver, me conta aí oque vc fez, por favor. Obrigado!
@@LucasTorres-nz7ki e @Silvio Souza vocês conseguiram resolver esse problema no wampserv? eu to nessa saga tem uns 8 dias e não consigo achar um post para tal....se puderem me deem um help por aq..vlw..
Meu redirecionamento só funciona se eu coloco no localhost. Se tento configurar pra usar localhost:8080 e rodo o php -S localhost:8080 o projeto só fica no index. Alguém sabe como resolver? Obs.: Uso Ubuntu 18.04 e já habilitei o htaccess no apache.
Edita a configuração do apache: ↳sudo vim /etc/apache2/sites-available/000-default.conf E coloca isso: Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all ServerAdmin webmaster@localhost DocumentRoot /var/www ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined
Estou com um problema de ERR_TOO_MANY_REDIRECTS a rota fica sempre direcionada para o erro e fica em loop infinito. Já vi todos os comentários e não encontrei a solução. Se alguém souber a solução.
Robson estou com um probleminha!!! Quando eu coloco $router->redirect("/ooops/{$router->error()}"); aparece a seguinte mensagem no Google Chorme! Esta página não está funcionando Redirecionamento em excesso por localhost O que seria???
No meu deu esse erro também. Antes de você executar o $router->redirect você executa o router->group. Ex: $router->group("opss"); $router->get("/{errcode}", function($data) { echo "Erro {$data['errcode']}"; var_dump($data); }); $router->dispatch(); if ($router->error()) { $router->redirect("/opss/{$router->error()}"); }
@@andrebrito9099 Eu também estava passando por isso. O código está certinho, porem a minha falha estava no $router = new Router("CONF_URL_TEST"); O certo é colocar sem aspas desse jeito $router = new Router(CONF_URL_TEST); Feito isso vai funcionar perfeitamente. Segue o baile..kkkkk
Não sei o que está acontecendo com o meu código, pois não aceita nada que não seja a rota "/". "/contact" não funciona e nem o redirecionamento ao tratar o erro. Já refiz o código várias vezes, os métodos foram todos copiados do home, só trocando os nomes, etc.
Opaaa! Era problema no .htaccess e na constante URL_BASE. Estou fazendo o curso usando o index dentro da pasta public. O único problema agora é que quando captura um erro de rota, aparece a pasta public na url. As demais rotas estão funcionando de boa.
Muito bom suas aulas. Mas por favor seria bom criar uma aula com um projeto real e completo. Nem que for uma agenda, mas que use todos os tips ensinados aqui. Deus te abençoe Robson!
Parece confuso mas em menos de 5min você cria uma rota um controlador e uma view... depois só criar a tabela e usar o DataLayer por exemplo. Entender MVC foi o divisor de águas para mim
Bom dia, Boa tarde ou Boa noite, estava testando alguns componentes seu e tbm algumas estrutura me deparei com o seguinte erro. alias não é um erro apenas um informe. errcode Exemplo se nao for algum dos erros listados ele tbm imprime exemplo 404 Normal mas se eu informar obs (testetstetstestetstetstetstetstetstetste) ele imprime na tela.
Eae, de boa? Não sei se vc já achou uma solução, mas eu resolvi esse "bug" desse jeito : if (!is_numeric($data["errcode"])) { $data["errcode"] = "404"; } echo "Erro {$data["errcode"]}"; var_dump($data);
Boa tarde Robson, falar que seu método de ensino é muito bom seria "chover no molhado". A única coisa que para mim não funcionou (devido, talvez; a questões de Configurações do Apache (.htaccess) ou do próprio Chrome (estou utilizando http e não https) é o Redirecionamento, que embora eu; esteja seguindo o Script "fio a pavio" ainda está causando ERRO ( ERR_TOO_MANY_REDIRECTS - está fazendo Loops Infinitos entre o Index.php e o Endereço Virtual ooops) e, ainda; NÃO consegui Contornar. Seus videos #phptips, que; são ótimos para que eu retome os conhecimentos em PHP (sou Cientista da Computação e trabalho com Progress 4GL, mas; esteu "coçando" para Empreender) assim que concluí-los, irei fazer minha inscrição ou no Curso ( Full Stack PHP Developer) porque esta me parece ser uma Pequena amostragem do que está Incluso no mesmo e sabemos que "Treino e Treino e Jogo é Jogo". Abraço.
É possivel no método Web:contact eu chamar um componente em React? por exemplo chamar um arquivo contact.php e esse arquivo chamar um arquivo contact.js que renderiza um componente em React
Opa, eu fiz um pequeno sistema e coloquei num host. O router não redirecionou para as classes. A versão do php está em 7.3. Só tenho como retorno uma página em branco, apesar do router ter o dispatch de boa e funcionando localmente, no servidor não funciona. Tem alguma configuração específica pra fazer ele funcionar?
Totalmente! Para quem tiver dúvida, tomem cuidado com a escrita das classes dentro da chamada do router, atentem principalmente as letras maiusculas e minúsculas. E qualquer dúvida, me ponho a disposição aqui também 🤗
@@danestrela Na hospedagem isso poderia ser o motivador pra ficar dando erro 400 até dar many redirects? Estou há uns 3 dias quebrando a cabeça com isso. Localmente funciona perfeitamente
@@danestrela A versão do PHP estava correta. Tinha um erro na constante do endereço do site que arrumei, mas ainda está com o problema. O que poderia ser no PHP.ini? Porque realmente não mudei nada no arquivo que a hospedagem fornece
@@AildoTorres Seria melhor olhar o código para saber, entende? De qualquer maneira, tente ver se o modulo mod_rewrite está ativo do apache, também verifica se o teu htaccess está configurado corretamente, conforme a documentação aqui: packagist.org/packages/coffeecode/router
Alguém consegue me salvar? Até o Call Back funciona bem, mas quando implemento um simples método de controller, da o erro 400. Alguém já passou por isso?
Alguém poderia me dar um help? Fiz uma aplicação com o que aprendi tanto com esse vídeo como com a série código aberto que roda beleza localmente. Quando tento rodar no servidor só dá erro 400 ERR_TOO_MANY_REDIRECTS. Já fiz update do autoload do composer no servidor, já revisei todo o codigo e nada. Estou ficando louco já com isso.
É difícil aceitar que na sua máquina está tudo de boas e quando sobe pro server dá zica. Vou enumerar o que descobri para dar o caminho das pedras para alguém que possa ter as mesmas dificuldades que eu tive: * Primeiro, tem que saber o básico do composer e se tratando disso todo conhecimento ainda é pouco. * Segundo, o namespace do componente Router tem que estar em letra minúscula, pois é mais pra um caminho de arquivo e não um namespace de arquivo/classe. * Terceiro, os namespaces de classes controller e model tem que estar em letra maiúscula (não sei se isso é necessário, mas pra mim funcionou). *Quarto, rodar os comandos: - php composer.phar update - php composer.phar dump-autoload -o
@@Robson_C_Tomas Veja se implementou o namespace corretamente $router->namespace("Source\App"); eu tbm tive esse problema.... eu estava usando a barra ao contrário...kkkkkk
Oiii Pessoal estou tendo problemas com o router, apos fazer o teste com contato na url dessa forma localhost/cursos/phptips/ep04/contato deveria gerar o erro, mas ele redireciona para o erro do browser "Objeto não encontrado!" ( prnt.sc/r6bnd5), ai depois inseri o contato na index pra ver se funcionava e tmb continua com o erro do browser, ate então o router so funciona na pasta raiz: "/", fora isso as rotas não funciona de jeito nenhum alguém passo por esse problema pode dar uma dica
Alguém poderia me dar uma luz de como trabalhar um sistema de login implementado usando esse router? Redireciono para o arquivo onde está as rotas depois de logar ou tem como implementar isso junto com as rotas?
Gostaria de saber onde é que ele captura pela primeira vez o valor da URL e para fazer um strtolower e deixar tudo minuscula. Procurei muito e não encontrei!
pelo pouco que eu li, isso não é possível. Você poderia colocar uma rota pra letras maiúsculas e outra pra letras minúsculas, mas parece que isso é ruim porque atrapalha o SEO do site anyway, sei que perguntou isso a 3+ meses, mas deixo aqui minha resposta pra futuras referencias de outras pessoas!
Dá um require do seu controller no index.php require __DIR__ ."/App/Web.php"; (Depende do caminho que vc estruturou no seu projeto). Provavelmente seu Diretório "App" não está dentro de "source"
Se não estiver redirecionando faça isso: Edita a configuração do apache: ↳sudo vim /etc/apache2/sites-available/000-default.conf E coloca isso: Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all ServerAdmin webmaster@localhost DocumentRoot /var/www ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined O segredo é o "AllowOverride All"
Alguém conseguiu usar esse router com ckeditor, summernote ou outro similar? As rotas bloqueando todos os acessos tá foda. Perdi 2 dias aqui e nada. Um help por favor!!!
Tive um problema com router. Num exemplo hipotético, se eu digitar ''www.teste.com.br/error", serei redirecionado só que o link é repetido várias vezes (www.teste.com.br/ops) e só o link final, na repetição, que contém o erro 404, por exemplo. Fiz conforme a documentação e o vídeo.
@@claudsonpaulino O que estava faltando no seu composer.json? Eu fiz um pequeno sistema localmente usando o que foi ensinado e foi tudo ok, mas mandando para a hospedagem fica dando erro 400 e redirecionando até dar erro por muitos redirecionamentos
@@AildoTorres eu esqueci de configurar pra fazer autoload do Config.php ent o banco de dados dava erro e por isso n funcionava, tbem n funcionava pra usar os package, ent é só ver a aula 1 direitinho
bom dia eu nao estava conseguindo enviar este comentario na aula passada entao vim nessa msm seguinte, eu nao estou coneguindo enviar nenhum tipo de email nenhum dos 3 modelos deram certo todos geraram este erro : Erro - Erro de SMTP: Não foi possível conectar ao servidor SMTP. sabe dizer por que ?
@@robsonvleite poxa muito obrigado, realmente eu tenho mesmo muita dificuldade pq não gosto de classes mais sei da sua necessidade mais minha condição infelizmente nao me permite pq meus rendimentos são inferiores ao minimo e tenho família então faço programação mais por hobi e já fiz um projeto para um comercio local combinamos de ele me pagar 50 reais por mês já faz um ano que não recebo e como é um amigo primeiro projeto fico meio sem jeito aperta ele e não tenho grana para poder pagar um curso profi entende mas de qualquer forma muito obrigado fico muito feliz pela atenção de vcs
Caraca, isso que é profissionalismo.
Tudo bem explicado e seguindo todos os padrões de projeto.
Tem curso por ai que promete muito e não segue nada...
instablaster.
Robson, chegou bem onde eu precisava, e esse material que você desenvolveu realmente é excepcional, eu estava usando o Slim framework para rotas, porque havia visto em outros cursos, porém eu sempre encontrava barreiras, porque não conseguia configurar por exemplo uma url base, ele ja pegava automaticamente, e isso acabava gerando diversos problemas, fora que eu não conseguia resgatar esses erros posteriormente, e o melhor dessa aula é que eu consegui pegar bem como funciona essa questão do MVC e como todo esse material conversa entre si. valeu, estou ansioso para os próximos conteúdos #phptips
Boa noite, mestre,
Estou estudando novamente o curso FSPHP com toda calma e já esta aparecendo novos projetos para fazer , onde nesse curso esta dando mais visão, para criação do sistema.
Mais com essa explicação, que é FODA.. não tem como dizer que é dificil..
Parabens e #BORAFSPHP.......... JUSTO SEMPRE ( UBUNTU )
Essas tuas aulas são brabas demais... Parabéns
Só faltou o botão de dar like * 1000.
Muito fera!
Seus vídeos têm sido muito úteis para mim.
Excelente aula. MVC descomplicado. Robson articula muito bem e entende do riscado.
Sucesso, sempre!! :)
Muito top e profissional, quero programar nesse nivel
em pessoal isso aqui esta bom de mais, curti ai porque vale muito apena
Cara, que aula!!!! muito obrigado!
Boa Noite Robson, estou agregando conhecimento com mais essa série sua, muito bom o conteúdo. Parabéns e obrigado!
Especificamente nessa aula Perdi um tempo bom, pois não funcionava logo no início, no retorno de erros e percebi que era o .htaccess, então segue a dica:
Dentro do arquivo de configuração do Apache (/etc/httpd/conf/httpd.conf) procure pela diretiva e altere o trecho...
-------------------------------
AllowOverride None
para...
AllowOverride All
------------------------------
Isso pra quem tá no ambiente localhost.
;--)
Dica de ouro, irmão. Valeu! Perdi alguns dias estudando o problema. Estou programando direto em servidor remoto e sua dica também é válida em VPS.
Muito boa seus explicações parabéns mesmo
Aula muito boa, um dia quero ser bom igual a você Robson na programação
Mais uma mega aula, super power.
Cara é um monstro!
Os melhores vídeos, essa playlist está sensacional, não tem o que melhorar, o único problema é que ela acaba!
Excelente Conteúdo, parabéns!
O Robson é Top demais!!
Muito bom assistir o vídeo e estar entendendo, mas já sangrei muito para entrar na cabeça, mas só se aprende programando então #BoraProgramar
Aprendendo muito
Já compartilhei! Tava esperando por essa aula a tempos. Top de mais. Vlw Robson!
Fala ai, galera!! Adorei o curso, na real ainda fazendo, mas curtindo muito! Vou fazer também o curso da upinside.
Essa parte do curso é como se fosse o routes/web.php do Laravel né :)
E aí xará! Gostei da didática e qualidade do vídeo, muito bom. Ainda preciso de mais base pra acompanhar. Massa!
valeuuu show Cabo Verde
Que playlist sensacional
Ótima aula! parece que estou mim deparando com as ROUTE do Laravel rsrs.
Parabéns pelo conteúdo! Se continuar assim vou me inscrever no Curso. Ótimo! Vou continuar a playlist para ver se tem a implementação do framework com a camada de visão para renderizar os templates. ;)
bom acho a sua aula sem duvida ótima se vc consegui se no final cria se uma aula com todos os exemplos trabalhando juntos e se vc poder usar as nomeclaturas do mvc acho que ficaria mais facil do que cria a nossa propria estrutura sei la tmj sempre
Olá tudo bem? nesta sua biblioteca, existem métodos para obter dados do header, obter o body de um post, e respostas como por exemplo forçar um status code? sua explicação ficou bem clara, estou tentando adaptar um projeto de APi meu que já funciona neste seu modelo de rotas, eu tenho alguns métodos que fazem isso que lhe perguntei, mas gostaria que já fossem acoplados a biblioteca.
Muito bom.
Robson, sensacional, agradeço muito pelo conhecimento e profissionalismo. Você pode apresentar como utilizar o Plates junto? Um grande abraço e mais uma vez muito obrigado.
Já passou 6 meses mas, APOIO kkk
Desse jeito eu consigo responder uma requisição ajax com json??
Eu estou passando por esse mesmo problema 22.05.23...
Fiz a atualização do meu PHP para 8.1 mas minha aplicação ainda está entrando em looop e da erro de direcionamento 400 ou 404..
quando eu comento o redirecionamento consigo debugar o trecho..mas não saio disso me deem um help..ja ate peguei um projeto em branco para fazer apenas as rotas mas não saio disso..
pessoal consegui resolver com a configuração do SSL ou HTTPS no Wampserver e vou criar um vídeo mostrando como eu fiz...abç...
Ainda funciona? estou fazendo igual a aula mais estou tendo problemas as paginas 404 retornam ERR_TOO_MANY_REDIRECTS e não consigo utilizar as classes dos controladores mesmo definindo os namespace. Obrigado
conseguiu resolver?
@@brunobmorais Naum man
Tbm estou tendo a mesma dor de cabeça. Alguem Conseguiu resolver?
Qual a configuração para usar com nginx? Na documentação tem apenas o exemplo p/ apache.
Também queria saber...
Pessoal, com esse componente não consigo fazer, por exemplo, isso na url: /sistema?user=teste ? E aí pegar no controller o $_GET['user'] ? Tentando aqui, mas não estou conseguindo...
Robson o CoffeecodeRouter é possivel utilizar Middleware, ?
Show
Robson, vc tem algum video que explica melhor a parte dos middlewares?
Boa tarde! Show de bola Robson! Seria bom uma aula agora usando o Model para gerenciamento com banco de dados nessa mesma estrutura ai que voce mostrou! Seria possivel?
aeewww eu estava esperando esse video =)
Você podia fazer um vídeo falando de fazer uma RESTful em Php com esse seu componente... Ainda estou apanhando pra receber dados via POST.
Robson o Coffeecode Router é possível utilizar Middleware?
Robson, como cria uma regra no htaccess para URL's amigáveis fora da rota? Tentei criar com [OR] ou [L,NC], refiz o [OR] e [L,R=301] mas nada, acaba caindo tudo em int(404), por exemplo /outra/path/arquivo.php, não é reconhecida.
tbm estou com esse problema e não estou achando a solução... poderia compartilhar?
Lembra muito o express do node
Ola Boa Aula, como definir o primarykey quando ele tem varios campos no datalayer?
Mestre, já que fez abstração de banco e rotas está faltando de template engine (embora eu gostaria de ver outros componentes antes) mas gostaria de ver outros templates engine para conhecer, pois só conheço o plates
Top
Fala Robson blz?!
Estou acompanhando esta aula, mas na minha maquina nao esta chamando a url localhost/meu_projeto/contato. Apenas renderiza quando chama a index.php. Como posso resolver isto. Utilizo php7, apache24. valeu obg!
top
Olá. essa série me ajudou muito.. mudou meu mindset, e me introduziu para uma nova (e melhor) forma de desenvolvimento. Obrigado :)
Notei que na sua máquina, você consegue rodar seus projetos com 'https'. Fazer isso me economizaria algumas linhas e algum tempo de configuração para rodar cada projeto.
Como posso fazer isso rodar na minha máquina tb? ... Não sei se faz diferença, mas eu utilizo o Ubuntu
Muito bom esses vídeos! Parabéns!!!!! Cria um chat estilo o facebook ai kkkkkkk
Professor essa biblioteca de rotas tem suporte a JSON?
Estou usando o postman para passar um json, mas não esta chegando no controlador, estou usando um json_decode na variavel $data, mas da uma erro pedindo um parâmetro,
é como se o json não estivesse chegando dentro do controlador.
Alguem sabe oque pode estar acontecendo com a biblioteca router?
Adicionando o tratamento para que o json e querystring se incorpore ao $data do meu método eu fiz a seguinte alteração no arquivo Dispatch.php do pacote.
encontre no arquivo a função "formSpoofing()" --> A LINHA ESTÁ ASSIM "protected function formSpoofing(): void"... e troque pelas três funções abaixo.
/**
* httpMethod form spoofing
*/
protected function formSpoofing(): void
{
$post = filter_input_array(INPUT_POST, FILTER_DEFAULT);
if (!empty($post['_method']) && in_array($post['_method'], ["PUT", "PATCH", "DELETE"])) {
$this->httpMethod = $post['_method'];
$this->data = $post;
unset($this->data["_method"]);
return;
}
if ($this->httpMethod == "GET") {
$this->data['json'] = $this->json();
$this->data['query'] = $this->queryString();
unset($this->data["_method"]);
return;
}
if ($this->httpMethod == "POST") {
$this->data = filter_input_array(INPUT_POST, FILTER_DEFAULT);
$this->data['json'] = $this->json();
$this->data['query'] = $this->queryString();
unset($this->data["_method"]);
return;
}
if (in_array($this->httpMethod, ["PUT", "PATCH", "DELETE"]) && !empty($_SERVER['CONTENT_LENGTH'])) {
parse_str(file_get_contents('php://input', false, null, 0, $_SERVER['CONTENT_LENGTH']), $putPatch);
$this->data = $putPatch;
$this->data['json'] = $this->json();
$this->data['query'] = $this->queryString();
unset($this->data["_method"]);
return;
}
$this->data = [];
return;
}
/**
* json
*/
private function json()
{
if (file_get_contents('php://input')) {
$decode = (array) json_decode(file_get_contents('php://input'), true);
$arr = (isset($decode) && count($decode) > 0) ? $decode : null;
return $arr;
}
}
/**
* query string
*/
private function queryString()
{
$query = filter_input(INPUT_SERVER, 'QUERY_STRING');
parse_str($query, $parse);
unset($parse["route"]);
return $parse;
}
E se eu quiser inicializar meu servido com o servidor embutido do PHP?
Usei o comando "php -S localhost:8000", e as rotas não funcionaram, a não ser a primeira. Sempre ficava na primeira.
Então amigo, o servidor embutido do PHP não ler arquivos htacess, você tem que ter o apache instalado
@@CarlosHenrique-vx3bm Show. Funcionou. Mas em uma requisição GET, como acesso aos dados vindos por Query Params? o $_GET não tem nada dentro, e a variavel $data também não.
Criei essa função para pegar o valor de GET, mas gostaria de saber se a lib resolve isso pra mim mais facilmente.
/** Retorna todos os valores do GET metodo **/
$values = array();
$uri = $_SERVER["REQUEST_URI"];
$uriExploded = explode("?", $uri);
if (sizeof($uriExploded) > 1) {
$queryParams = $uriExploded[1];
$fieldsAndValues = explode("&", $queryParams);
foreach ($fieldsAndValues as $fieldAndValue) {
$fieldAndValueExploded = explode("=", $fieldAndValue);
$values[$fieldAndValueExploded[0]] = $fieldAndValueExploded[1];
}
}
return $values;
}
@@allefdouglas9693 então amigo, passei por esse mesmo problema, não sei qual é sua necessidade, mas a minha eu resolvi assim
Antes eu usava o slim framework e pegava as variáveis pela url, através do GET, algo como
Url: www.mysite.com e chamava a url assim:
www.mysite.com?var1=1&var2=2
Pelo router, eu tive que modificar a
Url, ficou assim
Url: www.mysite.com/{var1}/{var2}
E passo
www.mysite.com/1/2,
A diferença é que essas variáveis ficam em um array $data, mas se for o caso é só atribuir o $data ao $_GET no início do Controller
@@CarlosHenrique-vx3bm só queria dizer obrigado por ter falado que o server embutido não funciona
eu estou a mais de uma hora procurando na internet como resolver isso, tive o mesmo erro do ParzivalAD
pelo menos agora eu sei que não tenho escolha a não ser colocar o projeto no htdocs
mais uma vez, obrigado!
Excelente vídeo aula, só não entendi como faço uma autenticação de usuários nesse componente, por exemplo, no laravel e no slim framework por exemplo, é possível adicionar middlewares de autenticação, usando o router eu tbm consigo fazer isso?
@@robsonvleite Entendi, tinha dado uma pesquisada, e já imaginava que seria algo parecido, muito obrigado pelo esclarecimento.
Muito bom o vídeo. Usando essas rotas e o datalayer, consigo eliminar o uso de um framwork?
entao devo fazer desta forma para todos crio o views home blog e no metodo que é chamado eu do um require para chamalo? (basicamente)
Boas noites!!!
Como sempre, mais um excelente vídeo. Porém estou no mesmo barco que um companheiro ai dos comentários: não sei se insisto, ou se desisto. Não consigo fazer estes redirecionamentos funcionarem. Pelo que estou entendendo o meu .htaccess não está fazendo seu papel. Quando acesso a base, vou para a home tranquilamente. Mas quando tento o primeiro exemplo que é "/contato/" só recebo msg de erro 404 do browser. O router parece não estar sendo executado.
veja se o modulo MOD_REWRITE está habilitado no apache
@ Valeu! Obrigado. Já habilitei. E este erro já está eliminado.
AGora estou com outros.
@@joseeustaquiosantos9617 qualquer dúvida se eu puder ajudar, estamos as ordens.
PhpJava, show!
qual o componente q vc utiliza Robson para renderizar template? eu utilizo RanTPL , tenho algumas dificuldade com ele , mais por não conhecer outro não sei qual o melhor
Quando tento usar o controller como no video simplesmente não funciona, retorna o error 400 alguem sabe se ainda funciona este coffeecode ?
Estou com o PHP 7.2 e o coffeecode 1.07
HTACCEESS
RewriteEngine On
Options All -Indexes
# ROUTER WWW Redirect.
#RewriteCond %{HTTP_HOST} !^www\. [NC]
#RewriteRule ^ www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# ROUTER HTTPS Redirect
#RewriteCond %{HTTP:X-Forwarded-Proto} !https
#RewriteCond %{HTTPS} off
#RewriteRule ^ %{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# ROUTER URL Rewrite
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php?route=/$1 [L,QSA]
INDEX
require __DIR__ . "/vendor/autoload.php";
use CoffeeCode\Router\Router;
$router = new Router("localhost/raiz");
$router->namespace("App\Controllers");
$router->group(null);
$router->get("/", "LoginController:login");
$router->dispatch();
if ($router->error()) {
var_dump($router->error());
}
CONTROLLER
Conseguiu resolver amigo? Desenvolvi muita coisa local e na hora que fui upar para o server só dá erro 400.
Vc colocou esse namespace dentro do arquivo composer.json e rodou o composer update novamente?
Ficaria algo do tipo:
---------------------------------
"autoload": {
"psr-4" : {
"App\\" : "coloque/o/caminho/relativo/da/pasta/aqui"
}
}
Obs.: Não sei se é útil para vc mas deve ser para alguém no futuro.
Eu desenvolvi um site usando os métodos do Robson e só da erro 400 de Bad Request. Meu arquivo no meu PC está funcionando tudo certo e eu criei duas variáveis uma URL_TESTE e outra URL_BASE na teste coloco o url do meu pc e na base o domínio da onde tá hospedado. Meu Composer tá ok, fiz testes mas não vai com naaada! Alguém ai sabe algo?
@@Dinookys Tava com o mesmo problema, porem o meu tem esses arquivos no auto load do php, mas ele continua dando erro 400 em tudo
estou usando o Twig pra desenvolver meu View, na hora de passar parametros no href tipo se eu usar /{id} blz funciona de boa mas se eu precisar usar /{id}/{id2} ai ferro não faço ideia de como usar o 2° parametro a linha ficou assim : alguem pode me ajudar como resolver isso ???
Muito bom trabalhar com PHP com arquitetura MVC, mas me veio uma dúvida muito grande, desde do início dos meus aprendizados em PHP eu semprei utilizei a arquitetura MVC em meus projetos, como eu faria caso eu fosse desenvolver um projeto bem simples? Nesse caso, o uso de MVC seria necessário? Caso não fosse necessário como eu faria as estruturas das pastas?
deixa eu ver se e entendi
a grosso modo podemos dizer que as urls ("amigáveis") são métodos de uma classe que são setados no index que pega o que esta escrito na própria URL ? mais como faço para por exemplo passar este caminho em um menu ?
eu normalmente não me familiarizei com classe não consigo ver a tão dita "reaproveitação de código" mais entendo a sua necessidade talvez seja porque não devo mesmo ser programador e devo procura algo diferente mais gosto deste meio entao segue o baile mais fiquei com esta duvida porque estou tao acostumado ao Home
que não consigo me desprender entende ?
Fiquei com uma dúvida, como faço para efetuar um redirect usando uma $handler pelo Controller criado?
Porque no caso, a estrutura do seu MVC tem um $classRouter->redirect($route); mas não funciona usando uma classe $handler, tentei fazer um Encapsulamento e não deu certo, então fiz uma função adicional usando uma outra classe com um extends para utilizar uma função redirect criada. Como faço para usar a própria classe Router com um $handler e um redirect?
Infelizmente eu não consigo fazer o router funcionar de jeito nenhum... por algum motivo, não entra em nenhuma página além da home, nem a pagina de erro nem nenhuma outra. Eu acho que talvez seja pelo fato que estou executando o comando "php -S localhost:8000" minha única teoria é que não é compatível com esse tipo de url...
Tem algum lugar que eu possa procurar saber sobre isso ?
Mesmo assim acho seus vídeos super didáticos, e quero terminar esse PHP tips escrevendo tudo!
achei a "solução": basicamente esse servidor embutido do PHP não lê o arquivo .htaccess , então não tem como usar ele. Basicamente eu tive que colocar o arquivo na pasta htdocs igual ele fez, aí funcionou tudo certinho
não sei se vai acontecer com alguém, mas deixo aí como eu resolvi
este tratamento de erros tb pode see cria uma pagina para cada erro
Robson, trabalhando com rotas, estaria iniciando uma url amigável?
Sim
Exatamente meu amigo
1 - Qual seria o componente responsável por retornar uma mensagem de erro para a view? Eu dei uma olhada no componente CoffeeCode/Router e no template League/Plates, ambos tem a opção de passar dados para a view, porém fiquei na dúvida, acredito que o certo seria com o Router utilizando o $this->router->redirect("name_rota", ["fail" => "mensagem"]), entretanto ao utilizar o método redirect do CoffeCode/Router, nada é retornado para view.
2 - No caso de um middleware de auth, seria possível implementar com o componente coffeeCode/Router? Eu vi uma pergunta dessa em um dos vídeos só não estou lembrado qual, porém não conseguir ver a resposta, por algum motivo em algumas perguntas não consigo ver as respostas dadas por vocês da UpInside.
como usar o middleware ?
$router->get("/edit/{id}", "Coffee:edit", middleware: \Http\Guest::class);
Fala DEV. Cara, uso Apache 24 + PHP 7.3. Simplesmente o Router só funciona o ROOT do projeto $router->get("/"..., acredito que pela existência do index.php, porém, qualquer outra rota implementada, $router->get("/contato"...) ou $router->get("/ops/...")..., não funciona, só dá "Not Found". Fiz tudo certinho, várias vezes e nada. O que será isso !?!?!?!? Tô pensando em instalar o XAMP... Será que resolve !?!?!?
Silvio, vc conseguiu resolver esse problema ? ...
Eu também fiz o código igual ao q o Robson fez. Mas, o meu também fica aparecendo o erro de "Not Found"! ...
Se vc conseguiu resolver, me conta aí oque vc fez, por favor.
Obrigado!
@@LucasTorres-nz7ki e @Silvio Souza vocês conseguiram resolver esse problema no wampserv? eu to nessa saga tem uns 8 dias e não consigo achar um post para tal....se puderem me deem um help por aq..vlw..
Meu redirecionamento só funciona se eu coloco no localhost. Se tento configurar pra usar localhost:8080 e rodo o php -S localhost:8080 o projeto só fica no index. Alguém sabe como resolver?
Obs.: Uso Ubuntu 18.04 e já habilitei o htaccess no apache.
Edita a configuração do apache:
↳sudo vim /etc/apache2/sites-available/000-default.conf
E coloca isso:
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
ServerAdmin webmaster@localhost
DocumentRoot /var/www
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
se eu usar atrapalha ou muda algo importante ?
Estou com um problema de ERR_TOO_MANY_REDIRECTS a rota fica sempre direcionada para o erro e fica em loop infinito. Já vi todos os comentários e não encontrei a solução. Se alguém souber a solução.
Isso também está acontecendo cmg, estou o dia inteiro tentando e não acho uma solução!!!!!!
@@lucasbueno4262 pelo que eu entendi o problema e no htaccess.
Robson estou com um probleminha!!!
Quando eu coloco $router->redirect("/ooops/{$router->error()}"); aparece a seguinte mensagem no Google Chorme!
Esta página não está funcionando
Redirecionamento em excesso por localhost
O que seria???
No meu deu esse erro também. Antes de você executar o $router->redirect você executa o router->group. Ex: $router->group("opss");
$router->get("/{errcode}", function($data) {
echo "Erro {$data['errcode']}";
var_dump($data);
});
$router->dispatch();
if ($router->error()) {
$router->redirect("/opss/{$router->error()}");
}
@@andrebrito9099 Eu também estava passando por isso. O código está certinho, porem a minha falha estava no $router = new Router("CONF_URL_TEST"); O certo é colocar sem aspas desse jeito $router = new Router(CONF_URL_TEST); Feito isso vai funcionar perfeitamente. Segue o baile..kkkkk
fui instalar o componente agora, ate baixa, mas quando abro a pasta do componente na vendor a pasta esta vazia
Não sei o que está acontecendo com o meu código, pois não aceita nada que não seja a rota "/".
"/contact" não funciona e nem o redirecionamento ao tratar o erro. Já refiz o código várias vezes, os métodos foram todos copiados do home, só trocando os nomes, etc.
Opaaa! Era problema no .htaccess e na constante URL_BASE. Estou fazendo o curso usando o index dentro da pasta public. O único problema agora é que quando captura um erro de rota, aparece a pasta public na url. As demais rotas estão funcionando de boa.
Boa noite amigo, é possivel criar rotas com php puro sem fremework ou composer?
Muito bom suas aulas. Mas por favor seria bom criar uma aula com um projeto real e completo. Nem que for uma agenda, mas que use todos os tips ensinados aqui. Deus te abençoe Robson!
Excelente vídeo ! Porém fiquei com uma dúvida ; Se insisto mais ou desisto de vez, rs .
Parece confuso mas em menos de 5min você cria uma rota um controlador e uma view... depois só criar a tabela e usar o DataLayer por exemplo. Entender MVC foi o divisor de águas para mim
Bom dia, Boa tarde ou Boa noite, estava testando alguns componentes seu e tbm algumas estrutura me deparei com o seguinte erro. alias não é um erro apenas um informe. errcode Exemplo se nao for algum dos erros listados ele tbm imprime exemplo 404 Normal mas se eu informar obs (testetstetstestetstetstetstetstetstetste) ele imprime na tela.
Eae, de boa? Não sei se vc já achou uma solução, mas eu resolvi esse "bug" desse jeito :
if (!is_numeric($data["errcode"])) {
$data["errcode"] = "404";
}
echo "Erro {$data["errcode"]}";
var_dump($data);
Boa tarde Robson, falar que seu método de ensino é muito bom seria "chover no molhado". A única coisa que para mim não funcionou (devido, talvez; a questões de Configurações do Apache (.htaccess) ou do próprio Chrome (estou utilizando http e não https) é o Redirecionamento, que embora eu; esteja seguindo o Script "fio a pavio" ainda está causando ERRO ( ERR_TOO_MANY_REDIRECTS - está fazendo Loops Infinitos entre o Index.php e o Endereço Virtual ooops) e, ainda; NÃO consegui Contornar. Seus videos #phptips, que; são ótimos para que eu retome os conhecimentos em PHP (sou Cientista da Computação e trabalho com Progress 4GL, mas; esteu "coçando" para Empreender) assim que concluí-los, irei fazer minha inscrição ou no Curso ( Full Stack PHP Developer) porque esta me parece ser uma Pequena amostragem do que está Incluso no mesmo e sabemos que "Treino e Treino e Jogo é Jogo". Abraço.
Conseguiu resolver esse problema? estou com o mesmo. valeu
conseguiu resolver o problema?
@@GuilhermeLopesSousaPinto-le8ey conseguiu resolver?
@@brunobmorais consegui mas não lembro como, ja faz tempo, pode ser algo na configuração do apache.
@@brunobmorais voce conseguiu resolver esse tipo de problema?
Alguém pode me ajudar o Router não aparece no meu simplesmente não existe a classe router oque fazer?
É possivel no método Web:contact eu chamar um componente em React? por exemplo chamar um arquivo contact.php e esse arquivo chamar um arquivo contact.js que renderiza um componente em React
Não consegui implementar essa solução no meu projeto
Opa, eu fiz um pequeno sistema e coloquei num host. O router não redirecionou para as classes. A versão do php está em 7.3. Só tenho como retorno uma página em branco, apesar do router ter o dispatch de boa e funcionando localmente, no servidor não funciona. Tem alguma configuração específica pra fazer ele funcionar?
Totalmente! Para quem tiver dúvida, tomem cuidado com a escrita das classes dentro da chamada do router, atentem principalmente as letras maiusculas e minúsculas. E qualquer dúvida, me ponho a disposição aqui também 🤗
@@danestrela Na hospedagem isso poderia ser o motivador pra ficar dando erro 400 até dar many redirects? Estou há uns 3 dias quebrando a cabeça com isso. Localmente funciona perfeitamente
@@AildoTorres ja tentou ver se tem alguma configuração do php.ini faltando? Se não, a versão do php está correta?
@@danestrela A versão do PHP estava correta. Tinha um erro na constante do endereço do site que arrumei, mas ainda está com o problema. O que poderia ser no PHP.ini? Porque realmente não mudei nada no arquivo que a hospedagem fornece
@@AildoTorres Seria melhor olhar o código para saber, entende? De qualquer maneira, tente ver se o modulo mod_rewrite está ativo do apache, também verifica se o teu htaccess está configurado corretamente, conforme a documentação aqui: packagist.org/packages/coffeecode/router
CoffeeCode/Router não funciona no NGINX.
Alguém consegue me salvar? Até o Call Back funciona bem, mas quando implemento um simples método de controller, da o erro 400. Alguém já passou por isso?
estou na mesma, no localhost está tudo ok, na vps não funciona
Alguém poderia me dar um help? Fiz uma aplicação com o que aprendi tanto com esse vídeo como com a série código aberto que roda beleza localmente.
Quando tento rodar no servidor só dá erro 400 ERR_TOO_MANY_REDIRECTS. Já fiz update do autoload do composer no servidor, já revisei todo o codigo e nada. Estou ficando louco já com isso.
É difícil aceitar que na sua máquina está tudo de boas e quando sobe pro server dá zica.
Vou enumerar o que descobri para dar o caminho das pedras para alguém que possa ter as mesmas dificuldades que eu tive:
* Primeiro, tem que saber o básico do composer e se tratando disso todo conhecimento ainda é pouco.
* Segundo, o namespace do componente Router tem que estar em letra minúscula, pois é mais pra um caminho de arquivo e não um namespace de arquivo/classe.
* Terceiro, os namespaces de classes controller e model tem que estar em letra maiúscula (não sei se isso é necessário, mas pra mim funcionou).
*Quarto, rodar os comandos:
- php composer.phar update
- php composer.phar dump-autoload -o
@@Robson_C_Tomas Veja se implementou o namespace corretamente $router->namespace("Source\App"); eu tbm tive esse problema.... eu estava usando a barra ao contrário...kkkkkk
Bacana teu vídeo véio.
😉
Oiii Pessoal estou tendo problemas com o router, apos fazer o teste com contato na url dessa forma localhost/cursos/phptips/ep04/contato deveria gerar o erro, mas ele redireciona para o erro do browser "Objeto não encontrado!" ( prnt.sc/r6bnd5), ai depois inseri o contato na index pra ver se funcionava e tmb continua com o erro do browser, ate então o router so funciona na pasta raiz: "/", fora isso as rotas não funciona de jeito nenhum alguém passo por esse problema pode dar uma dica
Alguém poderia me dar uma luz de como trabalhar um sistema de login implementado usando esse router? Redireciono para o arquivo onde está as rotas depois de logar ou tem como implementar isso junto com as rotas?
Gostaria de saber onde é que ele captura pela primeira vez o valor da URL e para fazer um strtolower e deixar tudo minuscula.
Procurei muito e não encontrei!
pelo pouco que eu li, isso não é possível. Você poderia colocar uma rota pra letras maiúsculas e outra pra letras minúsculas, mas parece que isso é ruim porque atrapalha o SEO do site
anyway, sei que perguntou isso a 3+ meses, mas deixo aqui minha resposta pra futuras referencias de outras pessoas!
com mais alguém ai não deu certo em 2022 kkk tipo ele não encontra meu controller agora se eu faço igual no laravel ele encontra porém não funciona
Dá um require do seu controller no index.php
require __DIR__ ."/App/Web.php"; (Depende do caminho que vc estruturou no seu projeto).
Provavelmente seu Diretório "App" não está dentro de "source"
@@tiagoalmeida1501 vlw man vou testar mais qu acabei fazendo puro
Como coloco um parâmetro na rota como opcional?
Usa um ? na frente ex: /usuario/{id}?
@@EstevanRezende Não da certo
Se não estiver redirecionando faça isso:
Edita a configuração do apache:
↳sudo vim /etc/apache2/sites-available/000-default.conf
E coloca isso:
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
ServerAdmin webmaster@localhost
DocumentRoot /var/www
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
O segredo é o "AllowOverride All"
Alguém conseguiu usar esse router com ckeditor, summernote ou outro similar? As rotas bloqueando todos os acessos tá foda. Perdi 2 dias aqui e nada. Um help por favor!!!
Tive um problema com router. Num exemplo hipotético, se eu digitar ''www.teste.com.br/error", serei redirecionado só que o link é repetido várias vezes (www.teste.com.br/ops) e só o link final, na repetição, que contém o erro 404, por exemplo. Fiz conforme a documentação e o vídeo.
Conseguiu resolver? eu estou com esse mesmo problema a uns 6 dias;;...me help
O router fica disparando erro 400, só para quando faço include manualmente da classe, oq não acontece no video, seria algum problema?
era só falta de atenção com o composer.json
@@claudsonpaulino O que estava faltando no seu composer.json? Eu fiz um pequeno sistema localmente usando o que foi ensinado e foi tudo ok, mas mandando para a hospedagem fica dando erro 400 e redirecionando até dar erro por muitos redirecionamentos
@@AildoTorres eu esqueci de configurar pra fazer autoload do Config.php ent o banco de dados dava erro e por isso n funcionava, tbem n funcionava pra usar os package, ent é só ver a aula 1 direitinho
@@claudsonpaulino Entendi. Essa minha parte está OK. Vou continuar tentando. Estou revendo os vídeos pra tentar achar onde pode estar o problema
@@AildoTorres erro 400 pode ser no htaccess tbem
bom dia eu nao estava conseguindo enviar este comentario na aula passada entao vim nessa msm
seguinte, eu nao estou coneguindo enviar nenhum tipo de email nenhum dos 3 modelos deram certo todos geraram este erro :
Erro - Erro de SMTP: Não foi possível conectar ao servidor SMTP.
sabe dizer por que ?
@@robsonvleite poxa muito obrigado, realmente eu tenho mesmo muita dificuldade pq não gosto de classes mais sei da sua necessidade mais minha condição infelizmente nao me permite pq meus rendimentos são inferiores ao minimo e tenho família então faço programação mais por hobi e já fiz um projeto para um comercio local combinamos de ele me pagar 50 reais por mês já faz um ano que não recebo e como é um amigo primeiro projeto fico meio sem jeito aperta ele
e não tenho grana para poder pagar um curso profi entende mas de qualquer forma muito obrigado fico muito feliz pela atenção de vcs