POO PHP Linux não funciona [RESOLVIDO]

1. POO PHP Linux não funciona [RESOLVIDO]

Vitor de Lima Oliveira Fonseca
vitorlofonseca

(usa openSUSE)

Enviado em 26/06/2016 - 20:11h

Fala pessoal! Boa noite.

Estou com um problema com o PHP do Ubuntu Server. Estou utilizando o seguinte código teste:

Login.php
<?php

class Login implements JsonSerializable{
private $email;
private $senha;
private $statusLogin;
private $ultimaVisita;

function __construct(){
}

public function getEmail(){
return $this->email;
}

public function getSenha(){
return $this->senha;
}

public function getStatusLogin (){
return $this->statusLogin;
}

public function getUltimaVisita (){
return $this->ultimaVisita;
}

public function setEmail ($email){
if (strlen($email) <= 50)
$this->email = $email;
}

public function setSenha ($senha){
$this->senha = $senha;
}

public function setStatusLogin ($statusLogin){
$this->statusLogin = $statusLogin;
}

public function setUltimaVisita ($ultimaVisita){
$this->ultimaVisita = $ultimaVisita;
}

public function JsonSerialize(){
$vars = get_object_vars($this);
return $vars;
}

}

?>


teste.php

<?php
include "/model/entity/Login.php";
echo "primeiroteste<br>";

$login = new Login ();
$login->setEmail ("teste@teste");
$login->setSenha ("teste");
echo $login->getEmail();

?>


A página retornada, contém apenas o primeiro echo (primeiroteste). O segundo não está sendo retornado. Não faço ideia do que seja isso, e no Windows (EasyPHP) funciona. Agradeço aos que tentarem resolver.


  


2. MELHOR RESPOSTA

Buckminster
Buckminster

(usa Debian)

Enviado em 30/06/2016 - 09:01h

Era isso mesmo, o sistema não estava achando o arquivo por causa do caminho.
Uma sugestão: use constantes para definir os caminhos do arquivo no Linux que você nunca mais se incomodará com isso.

Exemplo:

defined('PSI') or define('PSI', DIRECTORY_SEPARATOR);
defined('BDE') or define('BDE', dirname(dirname(__FILE__)) . PSI);

require_once BDE . 'model' .PSI. 'entity' .PSI. 'Login.php';

Cada 'dirname', grosso modo, representa um nível acima, daí você adapta e coloca quantos dirname forem necessários em cada caso.
E lembre-se que 'require' verifica se o arquivo existe e pára a execução do script e 'include' não faz nenhuma verificação. Utilize require somente quando o arquivo a ser chamado for bastante importante, pois o custo do require é maior do que o include. E require_once ou include_once chama o arquivo somente uma vez.

http://php.net/manual/pt_BR/function.dirname.php

http://forum.imasters.com.br/topic/514667-para-que-serve-requiredirname-file-filephp;/

http://php.net/manual/pt_BR/function.require.php

3. Re: POO PHP Linux não funciona [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 26/06/2016 - 23:48h

Dá alguma mensagem de erro?


4. Re: POO PHP Linux não funciona

Vitor de Lima Oliveira Fonseca
vitorlofonseca

(usa openSUSE)

Enviado em 27/06/2016 - 08:08h

Negativo. Só imprime a primeira mensagem, e a segunda não imprime. Eu importei o arquivo de um modo diferente, e funcionou.

require_once __DIR__ . DIRECTORY_SEPARATOR . "/model/entity/Login.php"; 


Tenho certeza que não é isso. Mas foi, e a gente não contesta né? hahaha






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts