RicardoSantos97 Posted July 7, 2016 at 01:02 PM Report #597564 Posted July 7, 2016 at 01:02 PM Boa tarde, Gostaria de saber como é que consigo aceder a uma classe que esta noutro servidor através do php. Ou seja, necessito de instanciar um objecto dessa classe e aceder aos respectivos métodos sendo que na realidade o objecto é instanciado num servidor, porém a classe que tem o construtor desse objecto esta noutro servidor. Atenciosamente, Ricardo Santos.
tiago.f Posted July 7, 2016 at 02:47 PM Report #597568 Posted July 7, 2016 at 02:47 PM Olá, uma classe não é mais do que um ficheiro por isso só tens que conseguir aceder a esse ficheiro e incluí-lo (include/require) É a primeira vez que alguém apresenta ou cenário como o teu mas. Parece-me estranho que precises de fazer isso, mas ok.
RicardoSantos97 Posted July 7, 2016 at 03:28 PM Author Report #597570 Posted July 7, 2016 at 03:28 PM Olá, uma classe não é mais do que um ficheiro por isso só tens que conseguir aceder a esse ficheiro e incluí-lo (include/require) É a primeira vez que alguém apresenta ou cenário como o teu mas. Parece-me estranho que precises de fazer isso, mas ok. Boa tarde, Desde já agradeço a resposta. O que quero fazer é aceder a um ficheiro de conexão a base de dados com métodos que me retornem informações genéricas como o número de linhas afectadas por um Insert/Update/Delete, ou por exemplo que me devolva os resultados de um Select. A classe já a tenho criada e funcional se os ficheiros estiverem no mesmo servidor. O principal objectivo da classe é reutilizar a mesma para vários projectos de forma a não estar a rescrever código desnecessariamente. Se eventualmente um cliente solicitar a criação de uma aplicação que esteja alojada, após concluída, no seu servidor, o objectivo é ele instanciar um objecto dessa classe que está no meu servidor e utilizar os métodos respectivos. Relativamente a resposta, com o include/require poderia ser uma solução porém teria de abilitar a função allow_url_include que por si só seria uma quebra na segurança das aplicação. Alguém tem mais alguma ideia de como é que posso resolver este situação?
HappyHippyHippo Posted July 7, 2016 at 05:14 PM Report #597571 Posted July 7, 2016 at 05:14 PM queres usar uma classe que está implementada num projecto que existe num outro servidor ? solução : copia o ficheiro IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
RicardoSantos97 Posted July 7, 2016 at 05:36 PM Author Report #597572 Posted July 7, 2016 at 05:36 PM Em 07/07/2016 às 19:14, HappyHippyHippo disse: queres usar uma classe que está implementada num projecto que existe num outro servidor ? solução : copia o ficheiro Boa tarde, O que pretendo é instanciar um objecto de uma classe que esta num servidor diferente do qual eu estou a instanciar o objecto. Ou seja, no servidor A tenho o meu ficheiro data.php, por exemplo, e no servidor B tenho o ficheiro index.php. Se o ficheiro data.php estive-se no mesmo servidor e diretoria do ficheiro index.php seria algo deste genero: <?php //Incluir o ficheiro data.php include('data.php'); //Instanciação do Objecto da classe data $data = new data(); ?> Ficheiro data.php: <?php class data { //Metodos } ?> Porém o meu ficheiro data.php esta noutro servidor e não no mesmo que o ficheiro index.php. Uma solução poderia ser fazer o include do ficheiro através da url do ficheiro, considerando que o ficheiro data.php esta na raiz do domínio exemplo.pt: <?php include('htttp://www.exemplo.pt/data.php'); ?> Para que esta solução resulte é necessário no php.ini ativar a configuração allow_url_include, o que por si só é uma falha de segurança. A minha questão é se existe alguma maneira de instanciar um objecto de uma classe num servidor externo e fazer uso dos métodos que estão associados a esse objecto? Desde já obrigado pela ajuda.
HappyHippyHippo Posted July 7, 2016 at 06:36 PM Report #597573 Posted July 7, 2016 at 06:36 PM tens a tua questão, e eu tenho a minha : qual o problema em copiar o ficheiro ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
RicardoSantos97 Posted July 7, 2016 at 07:46 PM Author Report #597576 Posted July 7, 2016 at 07:46 PM (edited) tens a tua questão, e eu tenho a minha : qual o problema em copiar o ficheiro ? Boa tarde, Não a nenhum problema em copiar o ficheiro. O objectivo com este exemplo que demonstrei no ultimo post era realizar uma espécie de "biblioteca", como se fosse em .net. Ou seja, criava a classe, realizava o build da aplicação e tinha a dll. De seguida bastava fazer o import para os vários projectos que tenho. Tentei ver como é que poderia fazer em php, porém não encontrei nenhum solução. Como tal pensei neste solução, em que tenho num servidor as "dll´s" e depois para os vários projectos que estariam hospedados fora do meu servidor, realizava um "include" dessas "dll´s" de forma a instanciar os objectos. Edited July 7, 2016 at 07:47 PM by RicardoSantos97
HappyHippyHippo Posted July 7, 2016 at 07:53 PM Report #597577 Posted July 7, 2016 at 07:53 PM antes de mais, quando fazes build da dll, não quer dizer que a dll está online para tu sacares e correr na tua aplicação. esse exemplo volta a "cair" na situação : cópia o teu ficheiro o que tu queres é algo que o Java implementa atra´ves daquilo a que se chama de RMI em PHP estou a magicar aqui uma coisa, deixa testar antes de dizer algo ... IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
RicardoSantos97 Posted July 7, 2016 at 07:59 PM Author Report #597578 Posted July 7, 2016 at 07:59 PM antes de mais, quando fazes build da dll, não quer dizer que a dll está online para tu sacares e correr na tua aplicação. esse exemplo volta a "cair" na situação : cópia o teu ficheiro o que tu queres é algo que o Java implementa atra´ves daquilo a que se chama de RMI em PHP estou a magicar aqui uma coisa, deixa testar antes de dizer algo ... Também tinha visto o RMI, porém não encontrei aplicação pratica para PHP. A questão de não copiar o ficheiro é de o cliente não ficar com o mesmo no servidor dele, ou seja de o codigo que desenvolvi fique de certa forma protegido. Desde já obrigado pela ajuda.
HappyHippyHippo Posted July 7, 2016 at 08:23 PM Report #597579 Posted July 7, 2016 at 08:23 PM ok ... arranjei uma solução para ti isto é uma solução básica, o que indica que em termos de processos de segurança, és tu que terás de implementar em cima desta ideia servidor: <?php echo <<<'EOD' class MyClass { static public function add($v1, $v2) { return $v1 + $v2; } pubic function mult($v1, $v2) { return $v1 * $v2; } } EOD; cliente: eval( file_get_contents('http://...') ); echo "teste1 : " . MyClass::add(3, 3) . " (resultado esperado : 6)<br />"; $instance = new MyClass(); echo "teste2 : " . MyClass::mult(3, 3) . " (resultado esperado : 9)<br />"; IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
RicardoSantos97 Posted July 7, 2016 at 08:47 PM Author Report #597580 Posted July 7, 2016 at 08:47 PM Em 7/7/2016 às 21:23, HappyHippyHippo disse: ok ... arranjei uma solução para ti isto é uma solução básica, o que indica que em termos de processos de segurança, és tu que terás de implementar em cima desta ideia servidor: <?php echo <<<'EOD' class MyClass { static public function add($v1, $v2) { return $v1 + $v2; } pubic function mult($v1, $v2) { return $v1 * $v2; } } EOD; cliente: eval( file_get_contents('http://...') ); echo "teste1 : " . MyClass::add(3, 3) . " (resultado esperado : 6)<br />"; $instance = new MyClass(); echo "teste2 : " . MyClass::mult(3, 3) . " (resultado esperado : 9)<br />"; Vou adaptar para aquilo que necessito. Obrigado pela ajuda.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now