Refactor variable names for consistency and clarity in ShutdownHandler and PackageWriter classes

This commit is contained in:
netkas 2025-03-11 13:56:05 -04:00
parent 1e45b47f0f
commit 487eb70b0b
Signed by: netkas
GPG key ID: 4D8629441B76E4CC
5 changed files with 233 additions and 231 deletions

View file

@ -9,6 +9,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
This update introduces a quality of life improvement This update introduces a quality of life improvement
### Changed
- Refactor variable names for consistency and clarity in ShutdownHandler and PackageWriter classes
## [2.1.6] - 2024-10-29 ## [2.1.6] - 2024-10-29

View file

@ -47,32 +47,32 @@
/** /**
* @var int * @var int
*/ */
private $package_offset; private $packageOffset;
/** /**
* @var int * @var int
*/ */
private $package_length; private $packageLength;
/** /**
* @var int * @var int
*/ */
private $header_offset; private $headerOffset;
/** /**
* @var int * @var int
*/ */
private $header_length; private $headerLength;
/** /**
* @var int * @var int
*/ */
private $data_offset; private $dataOffset;
/** /**
* @var int * @var int
*/ */
private $data_length; private $dataLength;
/** /**
* @var array * @var array
@ -82,12 +82,12 @@
/** /**
* @var resource * @var resource
*/ */
private $package_file; private $packageFile;
/** /**
* @var string * @var string
*/ */
private $package_path; private $packagePath;
/** /**
* @var array * @var array
@ -107,10 +107,10 @@
throw new IOException(sprintf('File \'%s\' does not exist', $file_path)); throw new IOException(sprintf('File \'%s\' does not exist', $file_path));
} }
$this->package_path = $file_path; $this->packagePath = $file_path;
$this->package_file = fopen($file_path, 'rb'); $this->packageFile = fopen($file_path, 'rb');
if($this->package_file === false) if($this->packageFile === false)
{ {
throw new IOException(sprintf('Failed to open file \'%s\'', $file_path)); throw new IOException(sprintf('Failed to open file \'%s\'', $file_path));
} }
@ -122,41 +122,41 @@
// End of data: \xFF\xAA\x55\xF0 // End of data: \xFF\xAA\x55\xF0
// First find the offset of the package by searching for the magic bytes "ncc_pkg" // First find the offset of the package by searching for the magic bytes "ncc_pkg"
$this->package_offset = 0; $this->packageOffset = 0;
while(!feof($this->package_file)) while(!feof($this->packageFile))
{ {
$buffer = fread($this->package_file, 1024); $buffer = fread($this->packageFile, 1024);
$buffer_length = strlen($buffer); $buffer_length = strlen($buffer);
$this->package_offset += $buffer_length; $this->packageOffset += $buffer_length;
if (($position = strpos($buffer, "ncc_pkg")) !== false) if (($position = strpos($buffer, "ncc_pkg")) !== false)
{ {
$this->package_offset -= $buffer_length - $position; $this->packageOffset -= $buffer_length - $position;
$this->package_length = 7; // ncc_pkg $this->packageLength = 7; // ncc_pkg
$this->header_offset = $this->package_offset + 7; $this->headerOffset = $this->packageOffset + 7;
break; break;
} }
} }
// Check for sanity reasons // Check for sanity reasons
if($this->package_offset === null || $this->package_length === null) if($this->packageOffset === null || $this->packageLength === null)
{ {
throw new IOException(sprintf('File \'%s\' is not a valid package file (missing magic bytes)', $file_path)); throw new IOException(sprintf('File \'%s\' is not a valid package file (missing magic bytes)', $file_path));
} }
// Seek the header until the end of headers byte sequence (1F 1F 1F 1F) // Seek the header until the end of headers byte sequence (1F 1F 1F 1F)
fseek($this->package_file, $this->header_offset); fseek($this->packageFile, $this->headerOffset);
while (!feof($this->package_file)) while (!feof($this->packageFile))
{ {
$this->headers .= fread($this->package_file, 1024); $this->headers .= fread($this->packageFile, 1024);
// Search for the position of "1F 1F 1F 1F" within the buffer // Search for the position of "1F 1F 1F 1F" within the buffer
if (($position = strpos($this->headers, "\x1F\x1F\x1F\x1F")) !== false) if (($position = strpos($this->headers, "\x1F\x1F\x1F\x1F")) !== false)
{ {
$this->headers = substr($this->headers, 0, $position); $this->headers = substr($this->headers, 0, $position);
$this->header_length = strlen($this->headers); $this->headerLength = strlen($this->headers);
$this->package_length += $this->header_length + 4; $this->packageLength += $this->headerLength + 4;
$this->data_offset = $this->header_offset + $this->header_length + 4; $this->dataOffset = $this->headerOffset + $this->headerLength + 4;
break; break;
} }
@ -181,19 +181,19 @@
} }
// Seek the data until the end of the package (FF AA 55 F0) // Seek the data until the end of the package (FF AA 55 F0)
fseek($this->package_file, $this->data_offset); fseek($this->packageFile, $this->dataOffset);
$buffer = ''; $buffer = '';
while(!feof($this->package_file)) while(!feof($this->packageFile))
{ {
$current_chunk = fread($this->package_file, 1024); $current_chunk = fread($this->packageFile, 1024);
$this->data_length += strlen($current_chunk); $this->dataLength += strlen($current_chunk);
$buffer .= $current_chunk; $buffer .= $current_chunk;
// If we detect the end-of-data byte sequence // If we detect the end-of-data byte sequence
if (($position = strpos($buffer, "\xFF\xAA\x55\xF0")) !== false) if (($position = strpos($buffer, "\xFF\xAA\x55\xF0")) !== false)
{ {
$this->data_length -= strlen($buffer) - $position; $this->dataLength -= strlen($buffer) - $position;
$this->package_length += $this->data_length + 4; $this->packageLength += $this->dataLength + 4;
break; break;
} }
@ -206,7 +206,7 @@
} }
if($this->data_length === null || $this->data_length === 0) if($this->dataLength === null || $this->dataLength === 0)
{ {
throw new IOException(sprintf('File \'%s\' is not a valid package file (missing end of package)', $file_path)); throw new IOException(sprintf('File \'%s\' is not a valid package file (missing end of package)', $file_path));
} }
@ -275,18 +275,18 @@
{ {
if(!isset($this->headers[PackageStructure::DIRECTORY->value][$name])) if(!isset($this->headers[PackageStructure::DIRECTORY->value][$name]))
{ {
throw new RuntimeException(sprintf('File \'%s\' not found in package \'%s\'', $name, $this->package_path)); throw new RuntimeException(sprintf('File \'%s\' not found in package \'%s\'', $name, $this->packagePath));
} }
$location = explode(':', $this->headers[PackageStructure::DIRECTORY->value][$name]); $location = explode(':', $this->headers[PackageStructure::DIRECTORY->value][$name]);
fseek($this->package_file, ($this->data_offset + (int)$location[0])); fseek($this->packageFile, ($this->dataOffset + (int)$location[0]));
if(in_array(PackageFlags::COMPRESSION->value, $this->headers[PackageStructure::FLAGS->value], true)) if(in_array(PackageFlags::COMPRESSION->value, $this->headers[PackageStructure::FLAGS->value], true))
{ {
return gzuncompress(fread($this->package_file, (int)$location[1])); return gzuncompress(fread($this->packageFile, (int)$location[1]));
} }
return fread($this->package_file, (int)$location[1]); return fread($this->packageFile, (int)$location[1]);
} }
/** /**
@ -299,7 +299,7 @@
{ {
if(!isset($this->headers[PackageStructure::DIRECTORY->value][$name])) if(!isset($this->headers[PackageStructure::DIRECTORY->value][$name]))
{ {
throw new RuntimeException(sprintf('Resource \'%s\' not found in package \'%s\'', $name, $this->package_path)); throw new RuntimeException(sprintf('Resource \'%s\' not found in package \'%s\'', $name, $this->packagePath));
} }
$location = explode(':', $this->headers[PackageStructure::DIRECTORY->value][$name]); $location = explode(':', $this->headers[PackageStructure::DIRECTORY->value][$name]);
@ -326,8 +326,8 @@
*/ */
public function getByPointer(int $pointer, int $length): string public function getByPointer(int $pointer, int $length): string
{ {
fseek($this->package_file, ($this->header_length + $pointer)); fseek($this->packageFile, ($this->headerLength + $pointer));
return fread($this->package_file, $length); return fread($this->packageFile, $length);
} }
/** /**
@ -348,7 +348,7 @@
if(!isset($this->headers[PackageStructure::DIRECTORY->value][$directory])) if(!isset($this->headers[PackageStructure::DIRECTORY->value][$directory]))
{ {
throw new ConfigurationException(sprintf('Assembly object not found in package \'%s\'', $this->package_path)); throw new ConfigurationException(sprintf('Assembly object not found in package \'%s\'', $this->packagePath));
} }
try try
@ -357,7 +357,7 @@
} }
catch(Exception $e) catch(Exception $e)
{ {
throw new IntegrityException(sprintf('Failed to decode assembly from package \'%s\' using ZiProto: %s', $this->package_path, $e->getMessage()), $e); throw new IntegrityException(sprintf('Failed to decode assembly from package \'%s\' using ZiProto: %s', $this->packagePath, $e->getMessage()), $e);
} }
$this->cache[$directory] = $assembly; $this->cache[$directory] = $assembly;
@ -382,7 +382,7 @@
if(!isset($this->headers[PackageStructure::DIRECTORY->value][$directory])) if(!isset($this->headers[PackageStructure::DIRECTORY->value][$directory]))
{ {
throw new ConfigurationException(sprintf('Metadata object not found in package \'%s\'', $this->package_path)); throw new ConfigurationException(sprintf('Metadata object not found in package \'%s\'', $this->packagePath));
} }
try try
@ -391,7 +391,7 @@
} }
catch(Exception $e) catch(Exception $e)
{ {
throw new IntegrityException(sprintf('Failed to decode metadata from package \'%s\' using ZiProto: %s', $this->package_path, $e->getMessage()), $e); throw new IntegrityException(sprintf('Failed to decode metadata from package \'%s\' using ZiProto: %s', $this->packagePath, $e->getMessage()), $e);
} }
foreach($this->getFlags() as $flag) foreach($this->getFlags() as $flag)
@ -429,7 +429,7 @@
} }
catch(Exception $e) catch(Exception $e)
{ {
throw new IntegrityException(sprintf('Failed to decode installer from package \'%s\' using ZiProto: %s', $this->package_path, $e->getMessage()), $e); throw new IntegrityException(sprintf('Failed to decode installer from package \'%s\' using ZiProto: %s', $this->packagePath, $e->getMessage()), $e);
} }
$this->cache[$directory] = $installer; $this->cache[$directory] = $installer;
@ -470,7 +470,7 @@
$dependency_name = sprintf('@%s:%s', PackageDirectory::DEPENDENCIES->value, $name); $dependency_name = sprintf('@%s:%s', PackageDirectory::DEPENDENCIES->value, $name);
if(!isset($this->headers[PackageStructure::DIRECTORY->value][$dependency_name])) if(!isset($this->headers[PackageStructure::DIRECTORY->value][$dependency_name]))
{ {
throw new ConfigurationException(sprintf('Dependency \'%s\' not found in package \'%s\'', $name, $this->package_path)); throw new ConfigurationException(sprintf('Dependency \'%s\' not found in package \'%s\'', $name, $this->packagePath));
} }
try try
@ -479,7 +479,7 @@
} }
catch(Exception $e) catch(Exception $e)
{ {
throw new IntegrityException(sprintf('Failed to decode dependency \'%s\' from package \'%s\' using ZiProto: %s', $name, $this->package_path, $e->getMessage()), $e); throw new IntegrityException(sprintf('Failed to decode dependency \'%s\' from package \'%s\' using ZiProto: %s', $name, $this->packagePath, $e->getMessage()), $e);
} }
} }
@ -499,7 +499,7 @@
} }
catch(Exception $e) catch(Exception $e)
{ {
throw new IntegrityException(sprintf('Failed to decode dependency from pointer \'%s\' with length \'%s\' from package \'%s\' using ZiProto: %s', $pointer, $length, $this->package_path, $e->getMessage()), $e); throw new IntegrityException(sprintf('Failed to decode dependency from pointer \'%s\' with length \'%s\' from package \'%s\' using ZiProto: %s', $pointer, $length, $this->packagePath, $e->getMessage()), $e);
} }
} }
@ -537,7 +537,7 @@
$execution_unit_name = sprintf('@%s:%s', PackageDirectory::EXECUTION_UNITS->value, $name); $execution_unit_name = sprintf('@%s:%s', PackageDirectory::EXECUTION_UNITS->value, $name);
if(!isset($this->headers[PackageStructure::DIRECTORY->value][$execution_unit_name])) if(!isset($this->headers[PackageStructure::DIRECTORY->value][$execution_unit_name]))
{ {
throw new ConfigurationException(sprintf('Execution unit \'%s\' not found in package \'%s\'', $name, $this->package_path)); throw new ConfigurationException(sprintf('Execution unit \'%s\' not found in package \'%s\'', $name, $this->packagePath));
} }
try try
@ -546,7 +546,7 @@
} }
catch(Exception $e) catch(Exception $e)
{ {
throw new IntegrityException(sprintf('Failed to decode execution unit \'%s\' from package file \'%s\' using ZiProto: %s', $name, $this->package_path, $e->getMessage()), $e); throw new IntegrityException(sprintf('Failed to decode execution unit \'%s\' from package file \'%s\' using ZiProto: %s', $name, $this->packagePath, $e->getMessage()), $e);
} }
} }
@ -577,7 +577,7 @@
} }
catch(Exception $e) catch(Exception $e)
{ {
throw new IntegrityException(sprintf('Failed to decode execution unit from pointer \'%s\' with length \'%s\' from package \'%s\' using ZiProto: %s', $pointer, $length, $this->package_path, $e->getMessage()), $e); throw new IntegrityException(sprintf('Failed to decode execution unit from pointer \'%s\' with length \'%s\' from package \'%s\' using ZiProto: %s', $pointer, $length, $this->packagePath, $e->getMessage()), $e);
} }
} }
@ -636,7 +636,7 @@
$component_name = sprintf('@%s:%s', PackageDirectory::COMPONENTS->value, $name); $component_name = sprintf('@%s:%s', PackageDirectory::COMPONENTS->value, $name);
if(!isset($this->headers[PackageStructure::DIRECTORY->value][$component_name])) if(!isset($this->headers[PackageStructure::DIRECTORY->value][$component_name]))
{ {
throw new ConfigurationException(sprintf('Component \'%s\' not found in package \'%s\'', $name, $this->package_path)); throw new ConfigurationException(sprintf('Component \'%s\' not found in package \'%s\'', $name, $this->packagePath));
} }
try try
@ -645,7 +645,7 @@
} }
catch(Exception $e) catch(Exception $e)
{ {
throw new IntegrityException(sprintf('Failed to decode component \'%s\' from package \'%s\' using ZiProto: %s', $name, $this->package_path, $e->getMessage()), $e); throw new IntegrityException(sprintf('Failed to decode component \'%s\' from package \'%s\' using ZiProto: %s', $name, $this->packagePath, $e->getMessage()), $e);
} }
} }
@ -665,7 +665,7 @@
} }
catch(Exception $e) catch(Exception $e)
{ {
throw new IntegrityException(sprintf('Failed to decode component from pointer \'%s\' with length \'%s\' from package \'%s\' using ZiProto: %s', $pointer, $length, $this->package_path, $e->getMessage()), $e); throw new IntegrityException(sprintf('Failed to decode component from pointer \'%s\' with length \'%s\' from package \'%s\' using ZiProto: %s', $pointer, $length, $this->packagePath, $e->getMessage()), $e);
} }
} }
@ -682,7 +682,7 @@
$class_name = sprintf('@%s:%s', PackageDirectory::CLASS_POINTER->value, $class); $class_name = sprintf('@%s:%s', PackageDirectory::CLASS_POINTER->value, $class);
if(!isset($this->headers[PackageStructure::DIRECTORY->value][$class_name])) if(!isset($this->headers[PackageStructure::DIRECTORY->value][$class_name]))
{ {
throw new ConfigurationException(sprintf('Class map \'%s\' not found in package \'%s\'', $class, $this->package_path)); throw new ConfigurationException(sprintf('Class map \'%s\' not found in package \'%s\'', $class, $this->packagePath));
} }
try try
@ -691,7 +691,7 @@
} }
catch(Exception $e) catch(Exception $e)
{ {
throw new IntegrityException(sprintf('Failed to decode component from class pointer \'%s\' from package \'%s\' using ZiProto: %s', $class, $this->package_path, $e->getMessage()), $e); throw new IntegrityException(sprintf('Failed to decode component from class pointer \'%s\' from package \'%s\' using ZiProto: %s', $class, $this->packagePath, $e->getMessage()), $e);
} }
} }
@ -729,7 +729,7 @@
$resource_name = sprintf('@%s:%s', PackageDirectory::RESOURCES->value, $name); $resource_name = sprintf('@%s:%s', PackageDirectory::RESOURCES->value, $name);
if(!isset($this->headers[PackageStructure::DIRECTORY->value][$resource_name])) if(!isset($this->headers[PackageStructure::DIRECTORY->value][$resource_name]))
{ {
throw new ConfigurationException(sprintf('Resource \'%s\' not found in package \'%s\'', $name, $this->package_path)); throw new ConfigurationException(sprintf('Resource \'%s\' not found in package \'%s\'', $name, $this->packagePath));
} }
try try
@ -738,7 +738,7 @@
} }
catch(Exception $e) catch(Exception $e)
{ {
throw new IntegrityException(sprintf('Failed to decode resource \'%s\' from package \'%s\' using ZiProto: %s', $name, $this->package_path, $e->getMessage()), $e); throw new IntegrityException(sprintf('Failed to decode resource \'%s\' from package \'%s\' using ZiProto: %s', $name, $this->packagePath, $e->getMessage()), $e);
} }
} }
@ -758,7 +758,7 @@
} }
catch(Exception $e) catch(Exception $e)
{ {
throw new IntegrityException(sprintf('Failed to decode resource from pointer \'%s\' with length \'%s\' from package \'%s\' using ZiProto: %s', $pointer, $length, $this->package_path, $e->getMessage()), $e); throw new IntegrityException(sprintf('Failed to decode resource from pointer \'%s\' with length \'%s\' from package \'%s\' using ZiProto: %s', $pointer, $length, $this->packagePath, $e->getMessage()), $e);
} }
} }
@ -788,7 +788,7 @@
*/ */
public function getPackageOffset(): int public function getPackageOffset(): int
{ {
return $this->package_offset; return $this->packageOffset;
} }
/** /**
@ -796,7 +796,7 @@
*/ */
public function getPackageLength(): int public function getPackageLength(): int
{ {
return $this->package_length; return $this->packageLength;
} }
/** /**
@ -804,7 +804,7 @@
*/ */
public function getHeaderOffset(): int public function getHeaderOffset(): int
{ {
return $this->header_offset; return $this->headerOffset;
} }
/** /**
@ -812,7 +812,7 @@
*/ */
public function getHeaderLength(): int public function getHeaderLength(): int
{ {
return $this->header_length; return $this->headerLength;
} }
/** /**
@ -820,7 +820,7 @@
*/ */
public function getDataOffset(): int public function getDataOffset(): int
{ {
return $this->data_offset; return $this->dataOffset;
} }
/** /**
@ -828,7 +828,7 @@
*/ */
public function getDataLength(): int public function getDataLength(): int
{ {
return $this->data_length; return $this->dataLength;
} }
/** /**
@ -842,12 +842,12 @@
{ {
$checksum = hash($hash, '', $binary); $checksum = hash($hash, '', $binary);
fseek($this->package_file, $this->package_offset); fseek($this->packageFile, $this->packageOffset);
$bytes_left = $this->package_length; $bytes_left = $this->packageLength;
while ($bytes_left > 0) while ($bytes_left > 0)
{ {
$buffer = fread($this->package_file, min(1024, $bytes_left)); $buffer = fread($this->packageFile, min(1024, $bytes_left));
$buffer_length = strlen($buffer); $buffer_length = strlen($buffer);
$bytes_left -= $buffer_length; $bytes_left -= $buffer_length;
$checksum = hash($hash, ($checksum . $buffer), $binary); $checksum = hash($hash, ($checksum . $buffer), $binary);
@ -875,13 +875,13 @@
throw new IOException(sprintf('Failed to open file \'%s\'', $path)); throw new IOException(sprintf('Failed to open file \'%s\'', $path));
} }
fseek($this->package_file, $this->package_offset); fseek($this->packageFile, $this->packageOffset);
$remaining_bytes = $this->package_length; $remaining_bytes = $this->packageLength;
while($remaining_bytes > 0) while($remaining_bytes > 0)
{ {
$bytes_to_read = min($remaining_bytes, 4096); $bytes_to_read = min($remaining_bytes, 4096);
$data = fread($this->package_file, $bytes_to_read); $data = fread($this->packageFile, $bytes_to_read);
if ($data === false) if ($data === false)
{ {
@ -911,9 +911,9 @@
*/ */
public function __destruct() public function __destruct()
{ {
if(is_resource($this->package_file)) if(is_resource($this->packageFile))
{ {
fclose($this->package_file); fclose($this->packageFile);
} }
} }
} }

View file

@ -53,70 +53,70 @@
/** /**
* @var resource * @var resource
*/ */
private $temp_file; private $tempFile;
/** /**
* @var resource * @var resource
*/ */
private $package_file; private $packageFile;
/** /**
* @var string; * @var string;
*/ */
private $temporary_path; private $temporaryPath;
/** /**
* @var bool * @var bool
*/ */
private $data_written; private $dataWritten;
/** /**
* PackageWriter constructor. * PackageWriter constructor.
* *
* @throws IOException * @throws IOException
*/ */
public function __construct(string $file_path, bool $overwrite=true) public function __construct(string $filePath, bool $overwrite=true)
{ {
if(!$overwrite && is_file($file_path)) if(!$overwrite && is_file($filePath))
{ {
throw new IOException(sprintf('File \'%s\' already exists', $file_path)); throw new IOException(sprintf('File \'%s\' already exists', $filePath));
} }
if(is_file($file_path)) if(is_file($filePath))
{ {
unlink($file_path); unlink($filePath);
} }
if(is_file($file_path . '.tmp')) if(is_file($filePath . '.tmp'))
{ {
unlink($file_path . '.tmp'); unlink($filePath . '.tmp');
} }
// Create the parent directory if it doesn't exist // Create the parent directory if it doesn't exist
if(!is_dir(dirname($file_path))) if(!is_dir(dirname($filePath)))
{ {
if (!mkdir($concurrentDirectory = dirname($file_path), 0777, true) && !is_dir($concurrentDirectory)) if (!mkdir($concurrentDirectory = dirname($filePath), 0777, true) && !is_dir($concurrentDirectory))
{ {
throw new IOException(sprintf('Directory "%s" was not created', $concurrentDirectory)); throw new IOException(sprintf('Directory "%s" was not created', $concurrentDirectory));
} }
} }
touch($file_path); touch($filePath);
touch($file_path . '.tmp'); touch($filePath . '.tmp');
$this->data_written = false; $this->dataWritten = false;
$this->temporary_path = $file_path . '.tmp'; $this->temporaryPath = $filePath . '.tmp';
$this->temp_file = @fopen($this->temporary_path, 'wb'); // Create a temporary data file $this->tempFile = @fopen($this->temporaryPath, 'wb'); // Create a temporary data file
$this->package_file = @fopen($file_path, 'wb'); $this->packageFile = @fopen($filePath, 'wb');
$this->headers = [ $this->headers = [
PackageStructure::FILE_VERSION->value => PackageStructureVersions::_2_0->value, PackageStructure::FILE_VERSION->value => PackageStructureVersions::_2_0->value,
PackageStructure::FLAGS->value => [], PackageStructure::FLAGS->value => [],
PackageStructure::DIRECTORY->value => [] PackageStructure::DIRECTORY->value => []
]; ];
if($this->temp_file === false || $this->package_file === false) if($this->tempFile === false || $this->packageFile === false)
{ {
throw new IOException(sprintf('Failed to open file \'%s\'', $file_path)); throw new IOException(sprintf('Failed to open file \'%s\'', $filePath));
} }
} }
@ -160,7 +160,7 @@
*/ */
public function setFlags(array $flags): void public function setFlags(array $flags): void
{ {
if($this->data_written) if($this->dataWritten)
{ {
throw new IOException('Cannot set flags after data has been written to the package'); throw new IOException('Cannot set flags after data has been written to the package');
} }
@ -198,7 +198,7 @@
} }
} }
if($this->data_written) if($this->dataWritten)
{ {
throw new IOException('Cannot add a flag after data has been written to the package'); throw new IOException('Cannot add a flag after data has been written to the package');
} }
@ -227,7 +227,7 @@
} }
} }
if($this->data_written) if($this->dataWritten)
{ {
throw new IOException('Cannot remove a flag after data has been written to the package'); throw new IOException('Cannot remove a flag after data has been written to the package');
} }
@ -269,10 +269,10 @@
} }
} }
$pointer = sprintf("%d:%d", ftell($this->temp_file), strlen($data)); $pointer = sprintf("%d:%d", ftell($this->tempFile), strlen($data));
$this->headers[PackageStructure::DIRECTORY->value][$name] = $pointer; $this->headers[PackageStructure::DIRECTORY->value][$name] = $pointer;
$this->data_written = true; $this->dataWritten = true;
fwrite($this->temp_file, $data); fwrite($this->tempFile, $data);
return explode(':', $pointer); return explode(':', $pointer);
} }
@ -395,7 +395,7 @@
public function merge(PackageReader $reader): void public function merge(PackageReader $reader): void
{ {
$progress_bar = new ConsoleProgressBar(sprintf('Merging %s', $reader->getAssembly()->getPackage()), count($reader->getDirectory())); $progress_bar = new ConsoleProgressBar(sprintf('Merging %s', $reader->getAssembly()->getPackage()), count($reader->getDirectory()));
$processed_resources = []; $processedResources = [];
foreach($reader->getDirectory() as $name => $pointer) foreach($reader->getDirectory() as $name => $pointer)
{ {
@ -411,15 +411,15 @@
break; break;
default: default:
if(isset($processed_resources[$pointer])) if(isset($processedResources[$pointer]))
{ {
Console::outDebug(sprintf('Merging %s as a pointer', $name)); Console::outDebug(sprintf('Merging %s as a pointer', $name));
$this->addPointer($name, (int)$processed_resources[$pointer][0], (int)$processed_resources[$pointer][1]); $this->addPointer($name, (int)$processedResources[$pointer][0], (int)$processedResources[$pointer][1]);
break; break;
} }
Console::outDebug(sprintf('Merging %s', $name)); Console::outDebug(sprintf('Merging %s', $name));
$processed_resources[$pointer] = $this->add($name, $reader->get($name)); $processedResources[$pointer] = $this->add($name, $reader->get($name));
} }
$progress_bar->increaseValue(1, true); $progress_bar->increaseValue(1, true);
@ -437,34 +437,34 @@
*/ */
public function close(): void public function close(): void
{ {
if(!is_resource($this->package_file) || !is_resource($this->temp_file)) if(!is_resource($this->packageFile) || !is_resource($this->tempFile))
{ {
throw new IOException('Package is already closed'); throw new IOException('Package is already closed');
} }
// Close the temporary data file // Close the temporary data file
fclose($this->temp_file); fclose($this->tempFile);
// Write the magic bytes "ncc_pkg" to the package and the header // Write the magic bytes "ncc_pkg" to the package and the header
fwrite($this->package_file, 'ncc_pkg'); fwrite($this->packageFile, 'ncc_pkg');
fwrite($this->package_file, ZiProto::encode($this->headers)); fwrite($this->packageFile, ZiProto::encode($this->headers));
fwrite($this->package_file, "\x1F\x1F\x1F\x1F"); fwrite($this->packageFile, "\x1F\x1F\x1F\x1F");
// Copy the temporary data file to the package // Copy the temporary data file to the package
$temp_file = fopen($this->temporary_path, 'rb'); $temp_file = fopen($this->temporaryPath, 'rb');
stream_copy_to_stream($temp_file, $this->package_file); stream_copy_to_stream($temp_file, $this->packageFile);
// End the package by writing the end-of-package delimiter (0xFFAA55F0) // End the package by writing the end-of-package delimiter (0xFFAA55F0)
fwrite($this->package_file, "\xFF\xAA\x55\xF0"); fwrite($this->packageFile, "\xFF\xAA\x55\xF0");
// Close the file handles // Close the file handles
fclose($this->package_file); fclose($this->packageFile);
fclose($temp_file); fclose($temp_file);
unlink($this->temporary_path); unlink($this->temporaryPath);
$this->package_file = null; $this->packageFile = null;
$this->temp_file = null; $this->tempFile = null;
} }
/** /**
@ -482,14 +482,14 @@
} }
finally finally
{ {
if(is_resource($this->package_file)) if(is_resource($this->packageFile))
{ {
fclose($this->package_file); fclose($this->packageFile);
} }
if(is_resource($this->temp_file)) if(is_resource($this->tempFile))
{ {
fclose($this->temp_file); fclose($this->tempFile);
} }
} }
} }

View file

@ -56,22 +56,22 @@
/** /**
* @var array * @var array
*/ */
private static $imported_packages = []; private static $importedPackages = [];
/** /**
* @var array * @var array
*/ */
private static $class_map = []; private static $classMap = [];
/** /**
* @var PackageManager|null * @var PackageManager|null
*/ */
private static $package_manager; private static $packageManager;
/** /**
* @var array * @var array
*/ */
private static $included_files = []; private static $includedFiles = [];
/** /**
* Executes the main execution point of an imported package and returns the evaluated result * Executes the main execution point of an imported package and returns the evaluated result
@ -94,23 +94,23 @@
throw new InvalidArgumentException(sprintf('Package %s is not imported', $package)); throw new InvalidArgumentException(sprintf('Package %s is not imported', $package));
} }
if(self::$imported_packages[$package] instanceof PackageReader) if(self::$importedPackages[$package] instanceof PackageReader)
{ {
if(self::$imported_packages[$package]?->getMetadata()?->getMainExecutionPolicy() === null) if(self::$importedPackages[$package]?->getMetadata()?->getMainExecutionPolicy() === null)
{ {
Console::out('The package does not have a main execution policy, skipping execution'); Console::out('The package does not have a main execution policy, skipping execution');
return 0; return 0;
} }
return ExecutionUnitRunner::executeFromPackage( return ExecutionUnitRunner::executeFromPackage(
self::$imported_packages[$package], self::$importedPackages[$package],
self::$imported_packages[$package]->getMetadata()->getMainExecutionPolicy() self::$importedPackages[$package]->getMetadata()->getMainExecutionPolicy()
); );
} }
if(is_string(self::$imported_packages[$package])) if(is_string(self::$importedPackages[$package]))
{ {
$metadata_path = self::$imported_packages[$package] . DIRECTORY_SEPARATOR . FileDescriptor::METADATA->value; $metadata_path = self::$importedPackages[$package] . DIRECTORY_SEPARATOR . FileDescriptor::METADATA->value;
if(!is_file($metadata_path)) if(!is_file($metadata_path))
{ {
@ -118,7 +118,7 @@
} }
return ExecutionUnitRunner::executeFromSystem( return ExecutionUnitRunner::executeFromSystem(
self::$imported_packages[$package], self::$importedPackages[$package],
Metadata::fromArray(ZiProto::decode(IO::fread($metadata_path)))->getMainExecutionPolicy(), Metadata::fromArray(ZiProto::decode(IO::fread($metadata_path)))->getMainExecutionPolicy(),
$arguments $arguments
); );
@ -193,12 +193,12 @@
} }
$entry = self::getPackageManager()->getPackageLock()->getEntry($package); $entry = self::getPackageManager()->getPackageLock()->getEntry($package);
self::$imported_packages[$package] = $entry->getPath($version); self::$importedPackages[$package] = $entry->getPath($version);
foreach($entry->getClassMap($version) as $class => $component_name) foreach($entry->getClassMap($version) as $class => $componentName)
{ {
$component_path = $entry->getPath($version) . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR . $component_name; $componentPath = $entry->getPath($version) . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR . $componentName;
self::$class_map[strtolower($class)] = $component_path; self::$classMap[strtolower($class)] = $componentPath;
} }
if($entry->getMetadata($version)->getOption(BuildConfigurationOptions::REQUIRE_FILES->value) !== null) if($entry->getMetadata($version)->getOption(BuildConfigurationOptions::REQUIRE_FILES->value) !== null)
@ -215,12 +215,12 @@
} }
// Get the file contents and prepare it // Get the file contents and prepare it
$evaluated_code = IO::fread($required_file); $evaluatedCode = IO::fread($required_file);
// Remove the PHP tags // Remove the PHP tags
$evaluated_code = preg_replace('/^<\?php|<\?PHP/', '', $evaluated_code, 1); $evaluatedCode = preg_replace('/^<\?php|<\?PHP/', '', $evaluatedCode, 1);
// Replace __DIR__ with the actual directory that the file is in // Replace __DIR__ with the actual directory that the file is in
$evaluated_code = str_replace('__DIR__', sprintf('"%s"', dirname($required_file)), $evaluated_code); $evaluatedCode = str_replace('__DIR__', sprintf('"%s"', dirname($required_file)), $evaluatedCode);
set_error_handler(function ($error_number, $message, $file, $line) use ($item, $package) set_error_handler(function ($error_number, $message, $file, $line) use ($item, $package)
{ {
@ -228,9 +228,9 @@
}); });
// Evaluate the code // Evaluate the code
eval($evaluated_code); eval($evaluatedCode);
restore_error_handler(); restore_error_handler();
unset($evaluated_code); unset($evaluatedCode);
} }
catch (ConfigurationException $e) catch (ConfigurationException $e)
{ {
@ -247,32 +247,32 @@
} }
} }
$safe_package_name = strtoupper($entry->getAssembly($version)->getName()); $safePackageName = strtoupper($entry->getAssembly($version)->getName());
foreach($entry->getMetadata($version)->getConstants() as $constant => $value) foreach($entry->getMetadata($version)->getConstants() as $constant => $value)
{ {
$constant_full_name = sprintf("%s_%s", $safe_package_name, $constant); $constantFullName = sprintf("%s_%s", $safePackageName, $constant);
// Skip if already defined. // Skip if already defined.
if(defined($constant_full_name)) if(defined($constantFullName))
{ {
if(RuntimeCache::get(sprintf("defined_%s", $constant_full_name))) if(RuntimeCache::get(sprintf("defined_%s", $constantFullName)))
{ {
continue; continue;
} }
trigger_error(sprintf('Cannot define constant %s from package %s because the constant is already defined', $constant_full_name, $package), E_USER_WARNING); trigger_error(sprintf('Cannot define constant %s from package %s because the constant is already defined', $constantFullName, $package), E_USER_WARNING);
continue; continue;
} }
if(!Validate::constantName($constant_full_name)) if(!Validate::constantName($constantFullName))
{ {
// trigger warning only // trigger warning only
trigger_error(sprintf('Cannot define constant %s from package %s because the constant name is invalid', $constant_full_name, $package), E_USER_WARNING); trigger_error(sprintf('Cannot define constant %s from package %s because the constant name is invalid', $constantFullName, $package), E_USER_WARNING);
continue; continue;
} }
RuntimeCache::set(sprintf("defined_%s", $constant_full_name), true); RuntimeCache::set(sprintf("defined_%s", $constantFullName), true);
define($constant_full_name, $value); define($constantFullName, $value);
} }
if(isset($entry->getMetadata($version)->getOptions()[PackageFlags::STATIC_DEPENDENCIES->value])) if(isset($entry->getMetadata($version)->getOptions()[PackageFlags::STATIC_DEPENDENCIES->value]))
@ -280,7 +280,7 @@
// Fake import the dependencies // Fake import the dependencies
foreach($entry->getVersion($version)->getDependencies() as $dependency) foreach($entry->getVersion($version)->getDependencies() as $dependency)
{ {
self::$imported_packages[$dependency->getName()] = $entry->getPath($version); self::$importedPackages[$dependency->getName()] = $entry->getPath($version);
} }
} }
else else
@ -299,83 +299,83 @@
/** /**
* Imports a package from a package file * Imports a package from a package file
* *
* @param string $package_path * @param string $packagePath
* @return string * @return string
* @throws ConfigurationException * @throws ConfigurationException
* @throws ImportException * @throws ImportException
* @throws IntegrityException * @throws IntegrityException
* @throws OperationException * @throws OperationException
*/ */
private static function importFromPackage(string $package_path): string private static function importFromPackage(string $packagePath): string
{ {
try try
{ {
$package_reader = new PackageReader($package_path); $packageReader = new PackageReader($packagePath);
} }
catch(Exception $e) catch(Exception $e)
{ {
throw new RuntimeException(sprintf('Failed to import package from file "%s" due to an exception: %s', $package_path, $e->getMessage()), 0, $e); throw new RuntimeException(sprintf('Failed to import package from file "%s" due to an exception: %s', $packagePath, $e->getMessage()), 0, $e);
} }
// Check if the package is already imported // Check if the package is already imported
if(in_array($package_reader->getAssembly()->getPackage(), self::$imported_packages, true)) if(in_array($packageReader->getAssembly()->getPackage(), self::$importedPackages, true))
{ {
$package_name = $package_reader->getAssembly()->getPackage(); $packageName = $packageReader->getAssembly()->getPackage();
unset($package_reader); unset($packageReader);
return $package_name; return $packageName;
} }
// Import the package // Import the package
$package_name = $package_reader->getAssembly()->getPackage(); $packageName = $packageReader->getAssembly()->getPackage();
self::$imported_packages[$package_name] = $package_reader; self::$importedPackages[$packageName] = $packageReader;
// Register the autoloader // Register the autoloader
foreach($package_reader->getClassMap() as $value) foreach($packageReader->getClassMap() as $value)
{ {
self::$class_map[strtolower($value)] = static function() use ($value, $package_name) self::$classMap[strtolower($value)] = static function() use ($value, $packageName)
{ {
return self::$imported_packages[$package_name]->getComponentByClass($value)->getData(); return self::$importedPackages[$packageName]->getComponentByClass($value)->getData();
}; };
} }
// Import the required files // Import the required files
if($package_reader->getMetadata()->getOption(BuildConfigurationOptions::REQUIRE_FILES->value) !== null) if($packageReader->getMetadata()->getOption(BuildConfigurationOptions::REQUIRE_FILES->value) !== null)
{ {
foreach($package_reader->getMetadata()->getOption(BuildConfigurationOptions::REQUIRE_FILES->value) as $item) foreach($packageReader->getMetadata()->getOption(BuildConfigurationOptions::REQUIRE_FILES->value) as $item)
{ {
try try
{ {
eval($package_reader->getComponent($item)->getData()); eval($packageReader->getComponent($item)->getData());
} }
catch(ConfigurationException $e) catch(ConfigurationException $e)
{ {
throw new ImportException(sprintf('Failed to import "%s" from %s: %s', $item, $package_name, $e->getMessage()), $e); throw new ImportException(sprintf('Failed to import "%s" from %s: %s', $item, $packageName, $e->getMessage()), $e);
} }
} }
} }
if($package_reader->getFlag(PackageFlags::STATIC_DEPENDENCIES->value)) if($packageReader->getFlag(PackageFlags::STATIC_DEPENDENCIES->value))
{ {
// Fake import the dependencies // Fake import the dependencies
foreach($package_reader->getDependencies() as $dependency_name) foreach($packageReader->getDependencies() as $dependency_name)
{ {
$dependency = $package_reader->getDependency($dependency_name); $dependency = $packageReader->getDependency($dependency_name);
self::$imported_packages[$dependency->getName()] = $package_reader; self::$importedPackages[$dependency->getName()] = $packageReader;
} }
} }
else else
{ {
// Import dependencies recursively // Import dependencies recursively
foreach($package_reader->getDependencies() as $dependency) foreach($packageReader->getDependencies() as $dependency)
{ {
$dependency = $package_reader->getDependency($dependency); $dependency = $packageReader->getDependency($dependency);
/** @noinspection UnusedFunctionResultInspection */ /** @noinspection UnusedFunctionResultInspection */
self::import($dependency->getName(), $dependency->getVersion()); self::import($dependency->getName(), $dependency->getVersion());
} }
} }
return $package_reader->getAssembly()->getPackage(); return $packageReader->getAssembly()->getPackage();
} }
/** /**
@ -386,7 +386,7 @@
*/ */
public static function isImported(string $package): bool public static function isImported(string $package): bool
{ {
return isset(self::$imported_packages[$package]); return isset(self::$importedPackages[$package]);
} }
/** /**
@ -396,7 +396,7 @@
*/ */
public static function getImportedPackages(): array public static function getImportedPackages(): array
{ {
return array_keys(self::$imported_packages); return array_keys(self::$importedPackages);
} }
/** /**
@ -407,20 +407,20 @@
{ {
$class = strtolower($class); $class = strtolower($class);
if(!isset(self::$class_map[$class])) if(!isset(self::$classMap[$class]))
{ {
return; return;
} }
if(is_callable(self::$class_map[$class])) if(is_callable(self::$classMap[$class]))
{ {
eval(self::$class_map[$class]()); eval(self::$classMap[$class]());
return; return;
} }
if(is_string(self::$class_map[$class]) && is_file(self::$class_map[$class])) if(is_string(self::$classMap[$class]) && is_file(self::$classMap[$class]))
{ {
require_once self::$class_map[$class]; require_once self::$classMap[$class];
} }
} }
@ -429,12 +429,12 @@
*/ */
private static function getPackageManager(): PackageManager private static function getPackageManager(): PackageManager
{ {
if(self::$package_manager === null) if(self::$packageManager === null)
{ {
self::$package_manager = new PackageManager(); self::$packageManager = new PackageManager();
} }
return self::$package_manager; return self::$packageManager;
} }
/** /**
@ -444,7 +444,7 @@
*/ */
public static function runtimeGetIncludedFiles(): array public static function runtimeGetIncludedFiles(): array
{ {
return array_merge(get_included_files(), self::$included_files); return array_merge(get_included_files(), self::$includedFiles);
} }
/** /**
@ -493,20 +493,20 @@
{ {
print(ob_get_clean()); print(ob_get_clean());
$exception_stack = null; $exceptionStack = null;
foreach ($exceptions as $e) foreach ($exceptions as $e)
{ {
if($exception_stack === null) if($exceptionStack === null)
{ {
$exception_stack = $e; $exceptionStack = $e;
} }
else else
{ {
$exception_stack = new Exception($exception_stack->getMessage(), $exception_stack->getCode(), $e); $exceptionStack = new Exception($exceptionStack->getMessage(), $exceptionStack->getCode(), $e);
} }
} }
throw new RuntimeException('An exception occurred while evaluating the code', 0, $exception_stack); throw new RuntimeException('An exception occurred while evaluating the code', 0, $exceptionStack);
} }
print(ob_get_clean()); print(ob_get_clean());
@ -526,7 +526,7 @@
*/ */
private static function acquireFile(string $path, ?string $package=null): string private static function acquireFile(string $path, ?string $package=null): string
{ {
$cwd_checked = false; // sanity check to prevent checking the cwd twice $CwdChecked = false; // sanity check to prevent checking the cwd twice
// Check if the file is absolute // Check if the file is absolute
if(is_file($path)) if(is_file($path))
@ -536,29 +536,29 @@
} }
// Since $package is not null, let's try to acquire the file from the package // Since $package is not null, let's try to acquire the file from the package
if($package !== null && isset(self::$imported_packages[$package])) if($package !== null && isset(self::$importedPackages[$package]))
{ {
$base_path = basename($path); $basePath = basename($path);
if(self::$imported_packages[$package] instanceof PackageReader) if(self::$importedPackages[$package] instanceof PackageReader)
{ {
$acquired_file = self::$imported_packages[$package]->find($base_path); $acquiredFile = self::$importedPackages[$package]->find($basePath);
Console::outDebug(sprintf('Acquired file "%s" from package "%s"', $path, $package)); Console::outDebug(sprintf('Acquired file "%s" from package "%s"', $path, $package));
return match (Resolver::componentType($acquired_file)) return match (Resolver::componentType($acquiredFile))
{ {
PackageDirectory::RESOURCES->value => self::$imported_packages[$package]->getResource(Resolver::componentName($acquired_file))->getData(), PackageDirectory::RESOURCES->value => self::$importedPackages[$package]->getResource(Resolver::componentName($acquiredFile))->getData(),
PackageDirectory::COMPONENTS->value => self::$imported_packages[$package]->getComponent(Resolver::componentName($acquired_file))->getData([ComponentDecodeOptions::AS_FILE->value]), PackageDirectory::COMPONENTS->value => self::$importedPackages[$package]->getComponent(Resolver::componentName($acquiredFile))->getData([ComponentDecodeOptions::AS_FILE->value]),
default => throw new IOException(sprintf('Unable to acquire file "%s" from package "%s" because it is not a resource or component', $path, $package)), default => throw new IOException(sprintf('Unable to acquire file "%s" from package "%s" because it is not a resource or component', $path, $package)),
}; };
} }
if(is_dir(self::$imported_packages[$package])) if(is_dir(self::$importedPackages[$package]))
{ {
$base_path = basename($path); $basePath = basename($path);
foreach(IO::scan(self::$imported_packages[$package]) as $file) foreach(IO::scan(self::$importedPackages[$package]) as $file)
{ {
if(str_ends_with($file, $base_path)) if(str_ends_with($file, $basePath))
{ {
Console::outDebug(sprintf('Acquired file "%s" from package "%s"', $path, $package)); Console::outDebug(sprintf('Acquired file "%s" from package "%s"', $path, $package));
return IO::fread($file); return IO::fread($file);
@ -568,29 +568,29 @@
} }
// If not, let's try the include_path // If not, let's try the include_path
foreach(explode(PATH_SEPARATOR, get_include_path()) as $file_path) foreach(explode(PATH_SEPARATOR, get_include_path()) as $filePath)
{ {
if($file_path === '.' && !$cwd_checked) if($filePath === '.' && !$CwdChecked)
{ {
$cwd_checked = true; $CwdChecked = true;
$file_path = getcwd(); $filePath = getcwd();
} }
if(is_file($file_path . DIRECTORY_SEPARATOR . $path)) if(is_file($filePath . DIRECTORY_SEPARATOR . $path))
{ {
Console::outDebug(sprintf('Acquired file "%s" from include_path', $path)); Console::outDebug(sprintf('Acquired file "%s" from include_path', $path));
return IO::fread($file_path . DIRECTORY_SEPARATOR . $path); return IO::fread($filePath . DIRECTORY_SEPARATOR . $path);
} }
if(is_file($file_path . DIRECTORY_SEPARATOR . basename($path))) if(is_file($filePath . DIRECTORY_SEPARATOR . basename($path)))
{ {
Console::outDebug(sprintf('Acquired file "%s" from include_path (using basename)', $path)); Console::outDebug(sprintf('Acquired file "%s" from include_path (using basename)', $path));
return IO::fread($file_path . DIRECTORY_SEPARATOR . basename($path)); return IO::fread($filePath . DIRECTORY_SEPARATOR . basename($path));
} }
} }
// Check the current working directory // Check the current working directory
if(!$cwd_checked) if(!$CwdChecked)
{ {
if(is_file(getcwd() . DIRECTORY_SEPARATOR . $path)) if(is_file(getcwd() . DIRECTORY_SEPARATOR . $path))
{ {
@ -607,11 +607,11 @@
// Check the calling script's directory // Check the calling script's directory
$called_script_directory = dirname(debug_backtrace()[0]['file']); $called_script_directory = dirname(debug_backtrace()[0]['file']);
$file_path = $called_script_directory . DIRECTORY_SEPARATOR . $path; $filePath = $called_script_directory . DIRECTORY_SEPARATOR . $path;
if(is_file($file_path)) if(is_file($filePath))
{ {
Console::outDebug(sprintf('Acquired file "%s" from calling script\'s directory', $path)); Console::outDebug(sprintf('Acquired file "%s" from calling script\'s directory', $path));
return IO::fread($file_path); return IO::fread($filePath);
} }
throw new IOException(sprintf('Unable to acquire file "%s" because it does not exist', $path)); throw new IOException(sprintf('Unable to acquire file "%s" because it does not exist', $path));
@ -628,7 +628,7 @@
{ {
try try
{ {
$acquired_file = self::acquireFile($path, $package); $acquiredFile = self::acquireFile($path, $package);
} }
catch(Exception $e) catch(Exception $e)
{ {
@ -639,19 +639,19 @@
return; return;
} }
$acquired_name = $path; $acquiredName = $path;
if(!is_file($path)) if(!is_file($path))
{ {
$acquired_name = hash('crc32', $acquired_file); $acquiredName = hash('crc32', $acquiredFile);
} }
if(!in_array($acquired_name, self::$included_files, true)) if(!in_array($acquiredName, self::$includedFiles, true))
{ {
self::$included_files[] = sprintf('virtual(%s)', $acquired_name); self::$includedFiles[] = sprintf('virtual(%s)', $acquiredName);
} }
self::extendedEvaluate($acquired_file); self::extendedEvaluate($acquiredFile);
} }
/** /**
@ -682,7 +682,7 @@
{ {
try try
{ {
$acquired_file = self::acquireFile($path, $package); $acquiredFile = self::acquireFile($path, $package);
} }
catch(Exception $e) catch(Exception $e)
{ {
@ -691,19 +691,19 @@
throw new RuntimeException(sprintf('Failed to acquire file "%s" at runtime: %s', $path, $e->getMessage()), $e->getCode(), $e); throw new RuntimeException(sprintf('Failed to acquire file "%s" at runtime: %s', $path, $e->getMessage()), $e->getCode(), $e);
} }
$acquired_name = $path; $requiredName = $path;
if(!is_file($path)) if(!is_file($path))
{ {
$acquired_name = hash('crc32', $acquired_file); $requiredName = hash('crc32', $acquiredFile);
} }
if(!in_array($acquired_name, self::$included_files, true)) if(!in_array($requiredName, self::$includedFiles, true))
{ {
self::$included_files[] = sprintf('virtual(%s)', $acquired_name); self::$includedFiles[] = sprintf('virtual(%s)', $requiredName);
} }
self::extendedEvaluate($acquired_file); self::extendedEvaluate($acquiredFile);
} }
/** /**

View file

@ -29,7 +29,6 @@
use ncc\ThirdParty\Symfony\Filesystem\Filesystem; use ncc\ThirdParty\Symfony\Filesystem\Filesystem;
use ncc\Utilities\Console; use ncc\Utilities\Console;
use ncc\Utilities\Functions; use ncc\Utilities\Functions;
use ncc\Utilities\RuntimeCache;
class ShutdownHandler class ShutdownHandler
{ {
@ -41,7 +40,7 @@
/** /**
* @var array * @var array
*/ */
private static $cleanup_paths = []; private static $cleanupPaths = [];
/** /**
* Registers the shutdown handler * Registers the shutdown handler
@ -66,11 +65,11 @@
*/ */
public static function shutdown(): void public static function shutdown(): void
{ {
if(count(self::$cleanup_paths) > 0) if(count(self::$cleanupPaths) > 0)
{ {
$filesystem = new Filesystem(); $filesystem = new Filesystem();
foreach(self::$cleanup_paths as $path) foreach(self::$cleanupPaths as $path)
{ {
try try
{ {
@ -101,9 +100,9 @@
*/ */
public static function declareTemporaryPath(string $path): void public static function declareTemporaryPath(string $path): void
{ {
if(!in_array($path, self::$cleanup_paths, true)) if(!in_array($path, self::$cleanupPaths, true))
{ {
self::$cleanup_paths[] = $path; self::$cleanupPaths[] = $path;
} }
} }
} }