Ir para conteúdo

POWERED BY:

Arquivado

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

lu4n

qual forma correta de usar metodos da classe

Recommended Posts

Pessoal fiz um sistema básico pra testar algumas classes, não estou obtendo sucesso no resultado, segue exemplo:
 

<?php
	spl_autoload_register(function ($className) {
		require_once('class/' . $className . '.php');
	});

	$class = new Register();
?>
<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>My Yii Application</title>
    <link rel="stylesheet" href="http://localhost/lib/bootstrap-3.3.7/css/bootstrap.min.css">
    <link rel="stylesheet" href="http://localhost/lib/font-awesome-4.7.0/css/font-awesome.min.css">
	<link rel="stylesheet" href="css/sidebar_1.css">

	<?php
		echo $class->registerStyleGet();
	?>
</head>

<body>
	<div class="container">
		<div class="row">
			<div class="col-sm-3">
				<?php
					include 'sidebar.php';
				?>
			</div>

			<div class="col-sm-9">
				<div class="row">
					<div class="col-sm-12">
						<ol class="breadcrumb">
							<li><a href="#">Início</a></li>
							<li><a href="#">Admin</a></li>
							<li class="active">User</li>
						</ol>
					</div>
				</div>

				<div class="row">
					<div class="col-sm-12">
						<?php
							if(isset($_GET['page'])) {
								$page = $_SERVER['DOCUMENT_ROOT'] . '/theme/page/' . $_GET['page'] . '.php';

								if(is_file($page)) {
									include $page;
								} else {
									include $_SERVER['DOCUMENT_ROOT'] . '/theme/page/error.php';
								}
							}
						?>
					</div>
				</div>
			</div>
		</div>
	</div>
	<script src="http://localhost/lib/jquery-3.2.1.min.js"></script>
	<script src="http://localhost/lib/bootstrap-3.3.7/js/bootstrap.min.js"></script>
	<?php
		echo $class->registerScriptGet();
	?>
</body>
</html>

esse é o index.php, ele carrega uma Classe e as páginas dinâmica,

 

Algumas  Páginas Dinâmicas chama o método da Classe instanciada no index.php

outro exemplo de uma página

<?php
	$class->registerStyleSet("
		.table-striped > tbody > tr:nth-child(2n+1) > td, .table-striped > tbody > tr:nth-child(2n+1) > th {
			background-color: #efeded;
		}
	", "CheckAllCss");
?>

<?php
	$class->registerScriptSet("
		$('table').on('change', '.selectAll', function (e) {
			$(this).closest('tr').find(\".aCheckbox\").prop('checked', this.checked);
		});
	", "CheckAll");
?>

<div class="progress">
	<div class="progress-bar progress-bar-danger progress-bar-striped active" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100" style="width: 100%">
	</div>
</div>

 

 

aqui é a classe:

<?php

class Register {
	private $script;
	private $style;

	public function registerStyleSet($style, $name = FALSE) {
		$result = "<script>\n";
		$result .= "\t\t// {$name}";
		$result .= "\t" . $style;
		$result .= "</script>\n";

		$this->style = $result;
	}

	public function registerStyleGet() {
		return $this->style;
	}

	public function registerScriptSet($script, $name = FALSE) {
		$result = "<script>\n";
		$result .= "\t\t// {$name}";
		$result .= "\t" . $script;
		$result .= "</script>\n";

		$this->script = $result;
	}

	public function registerScriptGet() {
		return $this->script;
	}
}

 

 

quando chamo o método registerStyleSet() na pagina e tento exibir acima da página ele não mostra, qual seria a solução??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Testei seu código aqui e ele ta funcionando tudo normalmente, inclusive o registerStyleSet(). Seja o que for, o problema não está nesses códigos que você mostrou. Tem mais algum outro pra mostrar pra gente? Qual erro que está informando?

 

Se não tiver mostrando nada adiciona esse código no começo dos scripts:

ini_set('display_errors', true);
error_reporting(E_ALL);

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa, sim ele está funcionando, o problema com a classe é o seguinte:

 

PAGINA:

 

<header>

       echo registerStyleGet();

</header>

 

<body>

       registerStyleSet($style);

       registerScriptSet($script);

</body>

 

<footer>

       echo registerScriptGet();

</footer>

 

Deu pra entender...

quando eu Set dpois do Get ele não mostra no GET do header, qual seria a solução para isso ???

Compartilhar este post


Link para o post
Compartilhar em outros sites

No caso do método registerStyleGet que está no header ele retorna o atributo style que até então não possui nada armazenado dentro desse atributo por isso não tem nada.

 

É simples você está chamando a execução antes da definição

é como se fosse usar:

Citar

echo $var; // A variável ainda não existe

$var = "blablabla";

 

Ou seja estou executando a variável antes de definir-la. O que dar em erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites
8 minutos atrás, Omar~ disse:

No caso do método registerStyleGet que está no header ele retorna o atributo style que até então não possui nada armazenado dentro desse atributo por isso não tem nada.

 

É simples você está chamando a execução antes da definição

é como se fosse usar:

 

Ou seja estou executando a variável antes de definir-la. O que dar em erro.

 

teria uma solução pra usar este método  em MVC, eu uso o Framework Yii, nas páginas eu defino um set, e ele exibi no cabeçalho da página

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 18/12/2017 at 16:42, lu4n disse:

 

teria uma solução pra usar este método  em MVC, eu uso o Framework Yii, nas páginas eu defino um set, e ele exibi no cabeçalho da página

 

No caso do framework não posso falar nada...

Mas no caso da classe existem 3 alternativas.

- Optar por um método construtor que preencher dados quando os mesmos não existirem.

- Optar por um método auxiliar que vai fazer o mesmo que a alternativa anterior.

- Modificar o método que retorna o atributo que está vazio preenchendo o mesmo com alguma coisa quando estiver vazio.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por clovis.sardinha
      Tenho uma consulta de autocomplete no bd que funciona no servidor local e não roda no servidor da web. 
      Ao enviar a consulta no servidor local  aparece no console :Fetch terminou o carregamento: GET ".../Cidade?cidade=sao%20paulo". A pesquisa é feita normalmente.
      Quando mando a mesma pesquisa para o servidor web(locaweb) aparece no console: Fetch terminou o carregamento: GET "..../Cidade?cidade=sao%2520paul".
      O número 25 aparece só no servidor web. Pelo que pesquisei 25 significa %, ou seja, está duplicando o caractere %. 
      Não consegui utilizar nenhuma função para evitar que isto ocorra. Alguém sabe se há alguma configuração no servidor web que possa ser alterada para evitar essa duplicação?
       
    • Por klasss
      Tenho este código request.onload = () => console.log(request.responseText) que consigo visualizar no browser os dados que quero mostrar, atraves do inspecionar (browser e lado direito do rato). Mas ainda não consegui visualizar os campos no browser. Já tentei de varias formas,
      a ultima foi:
      var events = request.responseText; document.getElementById("greeting").innerHTML = events; Obrigado
    • Por Diego-SLP
      Bom dia,
       
      Estou passando uma variavel via GET para uma pagina PHP e a SQL não interpreta a mesma.
       
      Se eu printar o numero é exibido, se eu colocar o valor manualmente na SQL ela funciona, porém quando coloco a variavel não exibe nenhum registro, se alguem puder me ajudar.
       
      <?php $id = $_GET['id']; echo $id; $procura = mysqli_query($con,"SELECT p.DATA,p.cod_func,f.nome,f.funcao,p.cod_etapa,p.entrada_1,p.saida_1,p.entrada_2,p.saida_2,p.entrada_3,p.saida_3 FROM rh_pontoFuncionario p, rh_funcionario f WHERE p.cod_func = f.cod AND p.cod_obra = '".$id."' ORDER BY p.id desc") or die (mysqli_error($procura)); while($row = mysqli_fetch_array($procura)){ ?> <tr role="row" class="odd table-sm"> <td class="text-center"> <?php echo date('d/m/Y',strtotime($row['DATA'])); ?> </td> <td class="text-center"><?php echo $row['cod_func'];?></td> <td class="text-center"><?php echo $row['nome'];?></td> <td class="text-center"><?php echo $row['funcao'];?></td> <td class="text-center"><?php echo $row['cod_etapa'];?></td> <td class="text-center"><?php echo $row['entrada_1'];?></td> <td class="text-center"><?php echo $row['saida_1'];?></td> <td class="text-center"><?php echo $row['entrada_2'];?></td> <td class="text-center"><?php echo $row['saida_2'];?></td> <td class="text-center"><?php echo $row['entrada_3'];?></td> <td class="text-center"><?php echo $row['saida_3'];?></td> <td class="project-actions text-center"> <a class="btn btn-warning btn-sm" href="#.php?id=<?php echo $row['id']; ?>"> <i class="fas fa-pencil-alt"> </i> </a> <a class="btn btn-danger btn-sm" href="#.php?id=<?php echo $row['id']; ?>"> <i class="fas fa-trash-alt"> </i> </a> </td> </tr> <?php }//while ?>  
    • Por Rzorr
      Bom dia,
              eu tenho um  site de imóveis, sou corretor, ele está com alguns problemas na URL, comprei esse script e venho fazendo algumas alterações nele, sei o básico, cadastrar, deletar, buscar, update, mas o que acontece esse site foi construido com MVC e confesso parei de estudar PHP faz muito tempo, e não entendo nada de MVC, abaixo o código da busca e como forma o link é montado.
          No site o link fica assim: /imoveis/lista/referencia/referencia/categoria/comprar/tipo/tipo/cidade/Camboriú/bairro/bairro#busca nesse exemplo fiz uma busca pela cidade!
         Se clico no menu em vendas o link fica assim: /imoveis/lista/referencia/referencia/categoria/comprar/tipo/tipo/cidade/cidade/bairro/bairro#busca
      pessoal obrigado pela disposição em ajudar, eu to tentando resolver faz dias, mas não consigo entender a a forma como é construido.
       
      <?php class busca extends controller { public function init(){ } public function inicial(){ $referencia = $this->post('referencia'); $categoria = $this->post('categoria'); $tipo = $this->post('tipo'); $cidade = $this->post('cidade'); $bairro = $this->post('bairro'); if($referencia){ $cidade = "cidade"; $bairro = "bairro"; $tipo = "tipo"; $categoria = "categoria"; } else { $referencia = 'referencia'; if(!$categoria){ $categoria = "categoria"; } if(!$tipo){ $tipo = "tipo"; } if(!$cidade){ $cidade = "cidade"; } if(!$bairro){ $bairro = "bairro"; } } $endereco = DOMINIO."imoveis/lista/referencia/$referencia/categoria/$categoria/tipo/$tipo/cidade/$cidade/bairro/$bairro#busca"; $this->irpara("$endereco"); }  
    • Por douglas79
      Bom dia,
       
      Estou seguindo uma vídeo aula no Youtube e o instrutor lá colocou uma sequência de div's (seja id ou class), o seletor background não funciona.

      Vou postar o código até o momento:
       
      @charset "utf-8";
       
      body, ul{padding:0;margin:0;background: #e2e2e2;list-style: none;}
      #geral{overflow: hidden;}
      #geral #topo{width:1018px;margin:0 auto;overflow: hidden;}
      #geral #topo #logo, #menuTopo{float:left;width:400px;}
      #geral #topo #logo{background:#ccc;}
      #geral #topo #menuTopo{}
      #geral #topo #menuTopo li{float:left;padding:5px;}

      Alguém pode me tirar essa dúvida???
      Desde já, agradeço!
×

Informação importante

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