Alternativa o require_once - Comunidade Portuguesa de PHP

Transcrição

Alternativa o require_once - Comunidade Portuguesa de PHP
Alternativa o require_once
Posted by msimoes - 2007/06/27 22:46
_____________________________________
Boas,
Deixo aqui uma pequena classe para utilização em requires em qualquer momento durante uma aplicação. Esta classe tem
o objecto de manter o registo de quais os ficheiros que já se encontram "loaded" em vês de ser utilizado o
require_once.
NOTA: esta classe é baseada parcialmente no loader.php do Joomla! 1.5, com algumas alterações da minha
responsabilidade.
UTILIZAÇÃO:
1. Para iniciar o uso da classe basta fazer o require do ficheiro, sem inicialização da classe visto que não é suposto ser
usada como objecto.
require path.to.'myLoader.php'
2. Utilizar a função load() ( não a load que se encontra dentro da classe ) com parametros:
$path = caminho para o ficheiro + ficheiro ( trocar as '/' por '.' e remover o '.php' que é inserido automaticamente )
$base = se esta variável não for definida a inicialização do path tem por base a localização do myLoader.php, de outra
forma, será utilizado o caminho indicado.
( uso um exemplo real utilizado no Joomla! 1.5 )
load( 'joomla.base.object' );
Este exemplo, após a função tratar do que é enviado, seria traduzido por:
require_once( $base . '/joomla/base/object.php' );
Esta classe é muito simples, mas facilita em muito a necessidade de uso dos "requires" e aumenta a performance de
qualquer aplicação removendo os *_once e mantendo a informção numa variável estática ( static )
<?php
/***
* @version $Id: myLoader.php $
* @author Miguel Simões <[email protected]>
* @license GNU/GPL, see LICENSE
* This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
***/
class myLoader {
public function load( $path , $base ) {
static $myLibraries;
if( !isset( $myLibraries ) ) $myLibraries = array();
if( !isset( $myLibraries ) ) {
$myLibraries = true;
if( is_null( $base ) ) $base = dirname( __FILE__ );
require $base . DS . str_replace( '.', '/' , $path ) . '.php';
}
return true;
}
}
function load( $path , $base = null ) {
PHP-PT.com Forum - Comunidade Portuguesa de PHP
Joomlaboard Forum Component version: 1.1.4 Stable
Generated: 30 September, 2016, 15:02
myLoader::load( $path , $base );
}
?>
Cumprimentos,
Miguel Simões
============================================================================
Re:Alternativa o require_once
Posted by mAiN_iNfEcTiOn - 2007/07/28 02:53
_____________________________________
Eu juro que não percebi...
1º Passo, chamo faço o require do file da classe; CHECK
2º Passo, utilizar a função load().
Ora eu tive a ver o código e se eu mandasse entao o exemplo que disseste:
load( 'joomla.base.object' );
isso não iria surtir num erro?! Eu não vejo onde é que fazes a divisão de código por pontos!
ex:
split(".",$path);
(Eu temo que diga uma asneira, mas isso tá relacionado com os arrays? é que nao tou a ver como fazes a divisão para
depois a string ficar no formato:
'/joomla/base/object.php'
============================================================================
Re:Alternativa o require_once
Posted by msimoes - 2007/07/28 18:31
_____________________________________
Boas,
A passagem do "." para o separador de directoria encontra-se em:
require $base . DS . str_replace( '.', '/' , $path ) . '.php';
Usando como exemplo o código por ti colocado, o resultado final ficaria:
require $base . DS . 'joomla' . DS . 'base' . DS . 'object' . '.php;
Cumprimentos,
Miguel Simões
============================================================================
Re:Alternativa o require_once
Posted by mAiN_iNfEcTiOn - 2007/07/28 20:05
_____________________________________
Ahhhh malandro... mas isso nao constava no excerto que deste inicialmente :laugh:
Pois, primeiro fazes o replace dos pontos pelo delimitador ... presumo que a constante DS seja o delimitador.
eh bem :)... mas entao neste caso o codigo de replace estará estático... senão seria:
PHP-PT.com Forum - Comunidade Portuguesa de PHP
Joomlaboard Forum Component version: 1.1.4 Stable
Generated: 30 September, 2016, 15:02
require $base . DS . str_replace( '.', DS , $path ) . '.php';
Certo?
(AFINAL CONSTAVA :X lolol)
Post edited by: mAiN_iNfEcTiOn, at: 2007/11/15 10:47
============================================================================
PHP-PT.com Forum - Comunidade Portuguesa de PHP
Joomlaboard Forum Component version: 1.1.4 Stable
Generated: 30 September, 2016, 15:02

Documentos relacionados

PDF, AJUDA!

PDF, AJUDA! procurei.Agora é o seguinte,como faço para imprimir esse mesmo resultado para pdf.Ja tive a ver várias librarias mas não sei como começar.Eu sei fazer pdf,s mas so não consigo nem sei é como vou bu...

Leia mais

Duvida ajuda pff Re:Duvida ajuda pff

Duvida ajuda pff Re:Duvida ajuda pff Pelo que percebi, tu pretendes que, após inserir o produto, ele vá para a página referente à categoria que foi seleccionada ao inserir o produto (numa espécie de preview para ver se o produto foi l...

Leia mais