Krotko:
Wykorzystujac dobrodziejstwa biblioteki SPL,zamienilem to:
<?php
$pliki = scandir(PATH_TPL);
foreach ($pliki as $n => $plik) {
if (is_file(PATH_TPL
.DIRECTORY_SEPARATOR
.$plik) && strpos($plik, '.tpl',1
)) { if(substr_compare($plik, 'admin_', 0, 6)==0)
$wynik['admin'][$plik] = $plik;
else
$wynik['user'][$plik] = $plik;
}
}
?>
na to:
<?php
class ExtensionsFilter extends FilterIterator {
protected $extension = '';
public function __construct($iterator, $extension = null) {
parent::__construct($iterator);
$this->extension = $extension;
}
public function accept() {
}
}
class NamesFilter extends FilterIterator {
protected $name = '';
public function __construct($iterator, $name = null) {
parent::__construct($iterator);
$this->name = $name;
}
public function accept() {
}
}
$ext = new ExtensionsFilter (new directoryIterator(PATH_TPL),'tpl');
$name = new NamesFilter($ext,'admin');
foreach ($name as $n)
$admin_name[] = $n->getFilename();
foreach ($ext as $e)
if(in_array($e->getFilename(),$admin_name)) $wynik['admin'][$n->getFilename()] = $n->getFilename();
else
$wynik['user'][$n->getFilename()] = $e->getFilename();
?>
Jednak dlugosc kodu( i zapeewne czas kompilacji) nie przekonuje mnie do tej biblioteki(przynajmniej w tym wypadku)
Co sadzicie? Dalo by sie to efektywniej osiagnac, stosujac SPL?
Dzieki za odpowiedzi...
Ten post edytował jjkk 20.07.2007, 20:11:19