Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Mr. Whyte

[Resolvido] Arquivo de configurações

Recommended Posts

eu gostaria de criar um arquivo de configuração que de para pegar o valor da configuração e de para modificar a mesma em um site! ja pesquisei em muitos lugares mas eu não encontrei uma solução viável que não seja utilizando banco de dados (talvez eu não esteja pesquisando com as palavras certas) se puderem me ajudar dizendo o que eu posso estar utilizando!

gostaria de uma solução em php que não seja utilizando banco de dados se possível! 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Agora, Maykel-ctba disse:

Pode dar um exemplo mais tangível do que você precisa?

Ex:

config.txt (.txt ou outra extensão)

titulo: Teste

 

pagina.php

<h1> <?php echo $config->titulo; ?> </h1>

 

Resultado

Teste

 

conseguiu entender o que quero fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi.

 

Cara, eu faço isso no próprio PHP.

 

config.php

<?php
define("SITE_TITULO", "Site maneiro!");
define("SITE_CSS", "verde");
?>

 

index.php

<?php require_once("config.php"); ?>
<h1><?php echo SITE_TITULO; ?></h1>
<link rel="stylesheet" href="/site/css/layout/layout_<?php echo SITE_CSS ?>.css">

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá @Mr. Whyte.

 

Cara, eu iria te sugerir uma das opções:

 

1 - Como o Maykel falou. É a forma mais rápida, pois você está utilizando o próprio PHP para armazenar as informações em memória volátil.

 

2 - Salvando suas cfgs em arquivos .ini e utilizando a função nativa parse_ini_file do PHP.

O problema é que naturalmente a leitura em disco é lenta, mas você poderia solucionar isso utilizando um cache em memória, como o Redis, Memcached ou APCu.

 

3 - Armazenando no servidor web (apache). Esse é um pouquinho mais avançado, mas MUITO mais seguro e eficiente para armazenar informações confidenciais como credenciais de banco de dados OU dados que mudam conforme o ambiente, um ótimo exemplo seria o db novamente, já que você geralmente usa dados diferentes de conexão se a aplicação estiver na sua máquina ou na maquina de produção.

3.1 - Você precisaria definir as variáveis usando o SetEnv do Apache ou fastcgi_param do Nginx.

Veja aqui para o Apache: https://stackoverflow.com/questions/3638637/how-to-use-the-setenv-variable-in-apache

Aqui para o nginx: https://serverfault.com/questions/448982/how-to-pass-custom-parameters-to-php-from-nginx

3.2 - Você precisaria recuperar as informações que você definiu anteriormente usando o getenv do PHP.

 

Só pra explicar um pouquinho melhor a diferença do 3 para os demais: nessa opção as configurações não ficam no seu código, mas no servidor web. Seu código pode ir pra um github da vida isento de credenciais de banco, por exemplo.

Já as configurações que devem ser iguais para todos os ambientes, você pode utilizar qualquer uma das opções sem problemas.

Compartilhar este post


Link para o post
Compartilhar em outros sites
5 horas atrás, Maykel-ctba disse:

Entendi.

 

Cara, eu faço isso no próprio PHP.

 

config.php


<?php
define("SITE_TITULO", "Site maneiro!");
define("SITE_CSS", "verde");
?>

 

index.php


<?php require_once("config.php"); ?>
<h1><?php echo SITE_TITULO; ?></h1>
<link rel="stylesheet" href="/site/css/layout/layout_<?php echo SITE_CSS ?>.css">

 

mas como eu poderia editar os valores das configurações sem entrar no arquivo?

Compartilhar este post


Link para o post
Compartilhar em outros sites
4 horas atrás, Matheus Tavares disse:

Olá @Mr. Whyte.

 

Cara, eu iria te sugerir uma das opções:

 

1 - Como o Maykel falou. É a forma mais rápida, pois você está utilizando o próprio PHP para armazenar as informações em memória volátil.

 

2 - Salvando suas cfgs em arquivos .ini e utilizando a função nativa parse_ini_file do PHP.

O problema é que naturalmente a leitura em disco é lenta, mas você poderia solucionar isso utilizando um cache em memória, como o Redis, Memcached ou APCu.

 

3 - Armazenando no servidor web (apache). Esse é um pouquinho mais avançado, mas MUITO mais seguro e eficiente para armazenar informações confidenciais como credenciais de banco de dados OU dados que mudam conforme o ambiente, um ótimo exemplo seria o db novamente, já que você geralmente usa dados diferentes de conexão se a aplicação estiver na sua máquina ou na maquina de produção.

3.1 - Você precisaria definir as variáveis usando o SetEnv do Apache ou fastcgi_param do Nginx.

Veja aqui para o Apache: https://stackoverflow.com/questions/3638637/how-to-use-the-setenv-variable-in-apache

Aqui para o nginx: https://serverfault.com/questions/448982/how-to-pass-custom-parameters-to-php-from-nginx

3.2 - Você precisaria recuperar as informações que você definiu anteriormente usando o getenv do PHP.

 

Só pra explicar um pouquinho melhor a diferença do 3 para os demais: nessa opção as configurações não ficam no seu código, mas no servidor web. Seu código pode ir pra um github da vida isento de credenciais de banco, por exemplo.

Já as configurações que devem ser iguais para todos os ambientes, você pode utilizar qualquer uma das opções sem problemas.

entendi, muito obrigado! vou tentar :3

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Fala galera.
      Espero que todos estejam bem.
      Seguinte: Tenho um arquivo xml onde alguns campos estão com : (dois pontos), como o exemplo abaixo:
       
      <item>
      <title>
      d sa dsad sad sadasdas
      </title>
      <link>
      dsadas dsa sad asd as dsada
      </link>
      <pubDate>sadasdasdsa as</pubDate>
      <dc:creator>
      d sad sad sa ad as das
      </dc:creator>
      </item>
       
      Meu código:
       
      $link = "noticias.xml"; 
      $xml = simplexml_load_file($link); 
      foreach($xml -> channel as $ite) {     
           $titulo = $ite -> item->title;
           $urltitulo = $ite -> item->link;
           print $urltitulo = $ite -> item->dc:creator;
      } //fim do foreach
      ?>
       
      Esse campo dc:creator eu não consigo ler. Como faço?
       
      Agradeço quem puder me ajudar.
       
      Abs
       
       
    • Por First
      Olá a todos!
       
      Eu estou criando um sistema do zero mas estou encontnrando algumas dificuldades e não estou sabendo resolver, então vim recorrer ajuda de vocês.
      Aqui está todo o meu código: https://github.com/PauloJagata/aprendizado/
       
      Eu fiz um sistema de rotas mas só mostra o conteúdo da '/' não sei porque, quando eu tento acessar o register nada muda.
      E eu também quero que se não estiver liberado na rota mostra o erro de 404, mas quando eu tento acessar um link inválido, nada acontece.
      Alguém pode me ajudar com isso? E se tiver algumas sugestão para melhoria do código também estou aceitando.
       
       
      Desde já, obrigado.
    • Por landerbadi
      Olá pessoal, boa tarde
       
      Tenho uma tabela chamada "produtos" com os seguintes campos (id, produto) e outra tabela chamada "itens" com os seguintes campos (id, prod_01, prod_02, prod_03, prod_04).
       
      Na tabela produtos eu tenho cadastrado os seguintes produtos: laranja, maçã, uva, goiaba, arroz, feijão, macarrão, etc.
       
      Na tabela itens eu tenho cadastrado os itens da seguinte maneira:
       
      1, laranja, uva, arroz, feijão;
      2, maçã, macarrão, goiaba, uva;
      3, arroz, feijão, maçã, azeite
       
      Meu problema é o seguinte: 
      Eu escolho um produto da tabela "produtos", por exemplo "uva".  Preciso fazer uma consulta na tabela "itens" para ser listado todos os registros que contenham o produto "uva" e que todos os demais produtos estejam cadastrados na tabela "produtos".
       
      No exemplo acima seria listado apenas dois registros, pois o terceiro registro não contém o produto "uva". 
       
      Alguém pode me ajudar? Pois estou quebrando a cabeça a vários dias e não consigo achar uma solução.
    • Por landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, plural, ativo. Nela tem cadastrado vários itens e seu respectivo plural. No campo ativo eu coloco a letra "S" para informar que esta palavra está ativa no sistema. Por exemplo: 1, casa, casas, S 2, mesa, mesas, S 3, cama, camas, S 4, moto, motos, S 5, rádio, rádios O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "variações" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, camas, moto 2, mesas, casas, radio 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela variações da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "casa". Preciso fazer com que o php me liste todos os registros da tabela "variações" que contenham a palavra "casa". Porém se tiver algum registro com a palavra "casas" também tem que ser listado. Neste caso ele irá encontrar dois registros. Agora eu preciso que o php verifique os demais itens e faça a listagem apenas dos item que estão ativos (que contenham um "S" no campo ativo. Neste caso ele irá encontrar apenas um registro, pois o segundo registro contém a palavra "rádio". E "rádio" não está ativo na tabela itens. Como faço isso?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.