File "class-path-processor.php"
Full path: /home/kosmetik/public_html/wp-content/plugins/woocommerce/packages/woocommerce-admin/vendor/automattic/jetpack-autoloader/src/class-path-processor.php
File
size: 3.22 B
MIME-type: text/x-php
Charset: utf-8
Download Open Edit Advanced Editor Back
<?php
class Path_Processor
{
public function tokenize_path_constants($path)
{
$path = wp_normalize_path($path);
$constants = $this->get_normalized_constants();
foreach ($constants as $constant => $constant_path) {
$len = strlen($constant_path);
if (substr($path, 0, $len) !== $constant_path) {
continue;
}
return substr_replace($path, '{{' . $constant . '}}', 0, $len);
}
return $path;
}
public function untokenize_path_constants($tokenized_path)
{
$tokenized_path = wp_normalize_path($tokenized_path);
$constants = $this->get_normalized_constants();
foreach ($constants as $constant => $constant_path) {
$constant = '{{' . $constant . '}}';
$len = strlen($constant);
if (substr($tokenized_path, 0, $len) !== $constant) {
continue;
}
return $this->get_real_path(substr_replace($tokenized_path, $constant_path, 0, $len));
}
return $tokenized_path;
}
public function find_directory_with_autoloader($file, $directories_to_check)
{
$file = wp_normalize_path($file);
if (!$this->is_absolute_path($file)) {
$file = $this->find_absolute_plugin_path($file, $directories_to_check);
if (!isset($file)) {
return false;
}
}
$file = $this->get_real_path($file);
$directory = @is_file($file) ? dirname($file) : $file;
if (!@is_file($directory . '/vendor/composer/jetpack_autoload_classmap.php')) {
return false;
}
return $directory;
}
private function get_normalized_constants()
{
$raw_constants = array('WP_PLUGIN_DIR', 'WPMU_PLUGIN_DIR', 'WP_CONTENT_DIR', 'ABSPATH');
$constants = array();
foreach ($raw_constants as $raw) {
if (!defined($raw)) {
continue;
}
$path = wp_normalize_path(constant($raw));
if (isset($path)) {
$constants[$raw] = $path;
}
}
return $constants;
}
private function is_absolute_path($path)
{
if (0 === strlen($path) || '.' === $path[0]) {
return false;
}
if (preg_match('/^[a-zA-Z]:[\\/\\\\]/', $path)) {
return true;
}
return '/' === $path[0] || '\\' === $path[0];
}
private function find_absolute_plugin_path($normalized_path, $directories_to_check)
{
if (!is_string($normalized_path) || '.php' !== substr($normalized_path, -4)) {
return null;
}
foreach ($directories_to_check as $directory) {
$normalized_check = wp_normalize_path(trailingslashit($directory)) . $normalized_path;
if (@is_file($normalized_check)) {
return $normalized_check;
}
}
return null;
}
private function get_real_path($path)
{
$real_path = @realpath($path);
if (false === $real_path) {
$real_path = $path;
}
if ($path !== $real_path) {
$real_path = wp_normalize_path($real_path);
}
return $real_path;
}
}