[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: DotenvReader.php
<?php namespace Jackiedo\DotenvEditor; use Jackiedo\DotenvEditor\Contracts\ParserInterface; use Jackiedo\DotenvEditor\Contracts\ReaderInterface; use Jackiedo\DotenvEditor\Exceptions\UnableReadFileException; /** * The DotenvReader class. * * @package Jackiedo\DotenvEditor * * @author Jackie Do <anhvudo@gmail.com> */ class DotenvReader implements ReaderInterface { /** * The file path. * * @var string */ protected $filePath; /** * The instance of Parser. * * @var \Jackiedo\DotenvEditor\Workers\Parsers\Parser */ protected $parser; /** * Create a new reader instance. * * @param ParserInterface $parser */ public function __construct(ParserInterface $parser) { $this->parser = $parser; } /** * Load file. * * @param string $filePath The path to dotenv file * * @return DotenvReader */ public function load(?string $filePath) { $this->filePath = $filePath; return $this; } /** * Get content of file. * * @return string */ public function content() { $this->ensureFileIsReadable(); return file_get_contents($this->filePath); } /** * Get informations of all entries from file content. * * @param bool $withParsedData Includes the parsed data in the result * * @return array */ public function entries(bool $withParsedData = false) { $entries = $this->getEntriesFromFile(); if (!(bool) $withParsedData) { return $entries; } return array_map(function ($info) { $info['parsed_data'] = $this->parser->parseEntry($info['raw_data']); return $info; }, $entries); } /** * Get informations of all keys from file content. * * @return array */ public function keys() { $entries = $this->getEntriesFromFile(); return array_reduce($entries, function ($carry, $entry) { $data = $this->parser->parseEntry($entry['raw_data']); if ('setter' == $data['type']) { $carry[$data['key']] = [ 'line' => $entry['line'], 'export' => $data['export'], 'value' => $data['value'], 'comment' => $data['comment'], ]; } return $carry; }, []); } /** * Read content into an array of lines with auto-detected line endings. * * @return array */ protected function getEntriesFromFile() { $this->ensureFileIsReadable(); return $this->parser->parseFile($this->filePath); } /** * Ensures the given file is readable. * * @return void * * @throws UnableReadFileException */ protected function ensureFileIsReadable() { if (!is_readable($this->filePath) || !is_file($this->filePath)) { throw new UnableReadFileException(sprintf('Unable to read the file at %s.', $this->filePath)); } } }
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: server1.winmanyltd.com
Server IP: 203.161.60.52
PHP Version: 8.3.27
Server Software: Apache
System: Linux server1.winmanyltd.com 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64
HDD Total: 117.98 GB
HDD Free: 59.62 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
Yes
git:
Yes
User Info
Username: eliosofonline
User ID (UID): 1002
Group ID (GID): 1003
Script Owner UID: 1002
Current Dir Owner: 1002