Make PluginBase::getResource() return a file pointer instead of the file contents

This commit is contained in:
Shoghi Cervantes 2014-05-19 20:14:31 +02:00
parent 99818a26f5
commit 6328834681

View File

@ -174,15 +174,15 @@ abstract class PluginBase implements Plugin{
* *
* @param string $filename * @param string $filename
* *
* @return bool|string Resource data, or false * @return \SplFileObject Resource data, or null
*/ */
public function getResource($filename){ public function getResource($filename){
$filename = rtrim(str_replace("\\", "/", $filename), "/"); $filename = rtrim(str_replace("\\", "/", $filename), "/");
if(file_exists($this->file . "resources/" . $filename)){ if(file_exists($this->file . "resources/" . $filename)){
return file_get_contents($this->file . "resources/" . $filename); return fopen($this->file . "resources/" . $filename, "rb");
} }
return false; return null;
} }
/** /**
@ -196,7 +196,7 @@ abstract class PluginBase implements Plugin{
return false; return false;
} }
if(($resource = $this->getResource($filename)) === false){ if(($resource = $this->getResource($filename)) === null){
return false; return false;
} }
@ -209,7 +209,7 @@ abstract class PluginBase implements Plugin{
return false; return false;
} }
return @file_put_contents($out, $resource) !== false; return stream_copy_to_stream($resource, fopen($out, "wb")) > 0;
} }
/** /**
@ -253,8 +253,8 @@ abstract class PluginBase implements Plugin{
public function reloadConfig(){ public function reloadConfig(){
$this->config = new Config($this->configFile); $this->config = new Config($this->configFile);
if(($configStream = $this->getResource("config.yml")) !== false){ if(($configStream = $this->getResource("config.yml")) !== null){
$this->config->setDefaults(yaml_parse(config::fixYAMLIndexes($configStream))); $this->config->setDefaults(yaml_parse(config::fixYAMLIndexes(stream_get_contents($configStream))));
} }
} }