{"id":16970577,"url":"https://github.com/vinniciusgomes/mvc-php","last_synced_at":"2025-03-21T19:37:00.841Z","repository":{"id":119140421,"uuid":"150732646","full_name":"vinniciusgomes/mvc-php","owner":"vinniciusgomes","description":"Lexical and syntactic analyzer using MVC standards in PHP 7+","archived":false,"fork":false,"pushed_at":"2019-05-15T16:52:47.000Z","size":56,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-01-26T14:21:53.061Z","etag":null,"topics":["mvc-framework-for-php","mvc-php","php","php7"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vinniciusgomes.png","metadata":{"files":{"readme":"README-BR.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-09-28T11:46:05.000Z","updated_at":"2022-02-12T09:40:48.000Z","dependencies_parsed_at":"2023-07-09T23:45:21.420Z","dependency_job_id":null,"html_url":"https://github.com/vinniciusgomes/mvc-php","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vinniciusgomes%2Fmvc-php","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vinniciusgomes%2Fmvc-php/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vinniciusgomes%2Fmvc-php/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vinniciusgomes%2Fmvc-php/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vinniciusgomes","download_url":"https://codeload.github.com/vinniciusgomes/mvc-php/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244856140,"owners_count":20521771,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["mvc-framework-for-php","mvc-php","php","php7"],"created_at":"2024-10-14T00:28:41.963Z","updated_at":"2025-03-21T19:37:00.816Z","avatar_url":"https://github.com/vinniciusgomes.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MVC - Model-view-controller\n\nModel-view-controller (MVC), é um padrão de arquitetura de software (Não confundir com um design pattern) que separa a representação da informação da interação do usuário com ele. O model consiste nos dados da aplicação, regras de negócios, lógica e funções. Uma view pode ser qualquer saída de representação dos dados, como uma tabela ou um diagrama. É possível ter várias visões do mesmo dado, como um gráfico de barras para gerenciamento e uma visão tabular para contadores. O controller faz a mediação da entrada, convertendo-a em comandos para o modelo ou visão. As ideias centrais por trás do MVC são a reusabilidade de código e separação de conceitos. – Wikipedia\n\n\n\n![](https://i.imgur.com/HUhtjBp.png)\n\n\n#### Model \n* Sempre que você pensar em manipulação de dados, pense em model. Ele é responsável pela leitura e escrita de dados, e também de suas validações.\n\n#### View\n* A camada de interação com o usuário. Ela apenas faz a  exibição dos dados, sendo ela por meio de um html ou xml.\n\n#### Controller\n* O responsável por receber todas as requisições do usuário. Seus métodos chamados actions são responsáveis por uma página, controlando qual model usar e qual view será mostrado ao usuário.\n\n\n## Pseudocodigo\n\n```\n\ncomeçacodigo():\n\tclasse sintatica:\n\t\tcomeçar():\n\t\t\tpegar valorArrayLexico(atual)\t\n\t\t\tchama reservadas()\n\t\t\tse valorArrayLexico(atual) != nulo:\n\t\t\t\tmostrar erro sintatico\n\t\t\tse não:\n\t\t\t\tmostrar sintaticamente correto\n\t\tfim começar();\n\n\t\treservadas():\n\t\t\tse valorArrayLexico(atual) == begin\n\t\t\t\tadiciona 1 a variavel\n\t\t\t\tpegar valorArrayLexico(atual)\n\t\t\t\tchama bloco()\n\t\t\t\tse valorArrayLexico(atual) == end\n\t\t\t\t\tremove 1 a variavel\n\t\t\t\t\tpegar valorArrayLexico(atual)\n\t\t\t\t\tchama bloco()\n\t\t\t\tse não\n\t\t\t\t\tresto = |variavel|\n\t\t\t\t\tse resto \u003e 0\n\t\t\t\t\t\tmostrar erro sintatico de begins\n\t\t\t\t\tse resto \u003c 0\n\t\t\t\t\t\tmostrar erro sintatico de ends\n\n\t\t\tse não\n\t\t\t\tmostrar erro sintatico de inical de begin\n\t\tfim reservadas();\n\n\t\tbloco():\n\t\t\tse valorArrayLexico(atual) = identificador\n\t\t\t\tpegar valorArrayLexico(atual)\n\t\t\t\tse valorArrayLexico(atual) = '='\n\t\t\t\t\tpegar valorArrayLexico(atual)\n\t\t\t\t\tse valorArrayLexico(atual) = identificador || numero\n\t\t\t\t\t\tpegar valorArrayLexico(atual)\n\t\t\t\t\t\tse valorArrayLexico(atual) = '+'\n\t\t\t\t\t\t\tpegar valorArrayLexico(atual)\n\t\t\t\t\t\t\tse valorArrayLexico(atual) = identificador || numero\n\t\t\t\t\t\t\t\tpegar valorArrayLexico(atual)\n\t\t\t\t\t\t\tse não\n\t\t\t\t\t\t\t\tmostrar erro sintatico de falta de identificador ou numero depois da soma\n\t\t\t\t\t\t\tchamar bloco()\n\t\t\t\t\t\tse não\n\t\t\t\t\t\t\tmostrar erro sintatico de soma\n\t\t\t\t\tse não\n\t\t\t\t\t\tmostrar erro sintatico de falta de identificador ou numero depois de atribuição\n\t\t\t\tse não\n\t\t\t\t\tmostrar erro sintatico de falta de atribuição\n\t\t\t\t\t\t\t\n\t\t\tse não se valorArrayLexico(atual) begin\n\t\t\t\tchama reseravadas()\n\t\t\tse nao se valorArrayLexico(atual) end ou nullo\n\t\t\t\tmatar bloco()\n\t\t\tse nao\n\t\t\t\tmostrar erro sintatico de começar com identificador\n\n\t\tfim bloco();\n\ntermina codigo();\n\n```\n\n\n## Estrutura de arquivos\n\n```\n  MVC\n  |\n  |--assets/\n  |  |--css/\n  |  |--img/\n  |  |--js/\n  |  \n  |--controllers/\n  |  |--all controllers/\n  |\n  |--lib/\n  |  |--autoloader.php/\n  |\n  |--models/\n  |  |--all models/\n  |\n  |--views/\n  |  |--all views/\n  |\n  |--index.php/\n  |\n```\n\n## O que é esse repositório?\n\nÉ um analisador simples Lexico e Sintatico usando os padrões MVC em PHP. Projeto para aprendizado dos padrões MVC e POO em PHP.\n\nTodos os arquivos que estão disponíveis nesse repositório estão comentados para facilitar o entendimento do que está acontecendo no código e assim conseguir construir sua base de arquitetura MVC para facilitar na organização da sua aplicação.\n\n## Licença\n\n\nEste repositório está licenciado sob o MIT License - consulte o arquivo [LICENSE](LICENSE) para obter detalhes.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvinniciusgomes%2Fmvc-php","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvinniciusgomes%2Fmvc-php","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvinniciusgomes%2Fmvc-php/lists"}