start
Signed-off-by: Jeff <jeff@gotenzing.com>
0 parents
Showing
1000 changed files
with
5032 additions
and
0 deletions
Too many changes to show.
To preserve performance only 1000 of 1000+ files are displayed.
.DS_Store
0 → 100644
No preview for this file type
.htaccess
0 → 100644
| 1 | |||
| 2 | # BEGIN WordPress | ||
| 3 | # The directives (lines) between `BEGIN WordPress` and `END WordPress` are | ||
| 4 | # dynamically generated, and should only be modified via WordPress filters. | ||
| 5 | # Any changes to the directives between these markers will be overwritten. | ||
| 6 | <IfModule mod_rewrite.c> | ||
| 7 | RewriteEngine On | ||
| 8 | RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] | ||
| 9 | RewriteBase / | ||
| 10 | RewriteRule ^index\.php$ - [L] | ||
| 11 | RewriteCond %{REQUEST_FILENAME} !-f | ||
| 12 | RewriteCond %{REQUEST_FILENAME} !-d | ||
| 13 | RewriteRule . /index.php [L] | ||
| 14 | </IfModule> | ||
| 15 | |||
| 16 | # END WordPress | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
composer.json
0 → 100644
| 1 | { | ||
| 2 | "require": { | ||
| 3 | "php": ">=5.4", | ||
| 4 | "symfony/var-dumper": "~2.6", | ||
| 5 | "vlucas/phpdotenv": "~1.1" | ||
| 6 | }, | ||
| 7 | "repositories": [ | ||
| 8 | { | ||
| 9 | "type": "composer", | ||
| 10 | "url": "https://wpackagist.org" | ||
| 11 | } | ||
| 12 | ], | ||
| 13 | "config": { | ||
| 14 | "preferred-install": "dist" | ||
| 15 | }, | ||
| 16 | "extra": { | ||
| 17 | "installer-paths": { | ||
| 18 | "wp-content/mu-plugins/{$name}/": [ | ||
| 19 | "type:wordpress-muplugin" | ||
| 20 | ], | ||
| 21 | "wp-content/plugins/{$name}/": [ | ||
| 22 | "type:wordpress-plugin" | ||
| 23 | ], | ||
| 24 | "wp-content/themes/{$name}/": [ | ||
| 25 | "type:wordpress-theme" | ||
| 26 | ] | ||
| 27 | }, | ||
| 28 | "wordpress-install-dir": "./" | ||
| 29 | } | ||
| 30 | } |
composer.lock
0 → 100644
| 1 | { | ||
| 2 | "_readme": [ | ||
| 3 | "This file locks the dependencies of your project to a known state", | ||
| 4 | "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", | ||
| 5 | "This file is @generated automatically" | ||
| 6 | ], | ||
| 7 | "content-hash": "2b5fd6e0e1d56a6dc87df0aae3949d7d", | ||
| 8 | "packages": [ | ||
| 9 | { | ||
| 10 | "name": "symfony/polyfill-mbstring", | ||
| 11 | "version": "v1.27.0", | ||
| 12 | "source": { | ||
| 13 | "type": "git", | ||
| 14 | "url": "https://github.com/symfony/polyfill-mbstring.git", | ||
| 15 | "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" | ||
| 16 | }, | ||
| 17 | "dist": { | ||
| 18 | "type": "zip", | ||
| 19 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", | ||
| 20 | "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", | ||
| 21 | "shasum": "" | ||
| 22 | }, | ||
| 23 | "require": { | ||
| 24 | "php": ">=7.1" | ||
| 25 | }, | ||
| 26 | "provide": { | ||
| 27 | "ext-mbstring": "*" | ||
| 28 | }, | ||
| 29 | "suggest": { | ||
| 30 | "ext-mbstring": "For best performance" | ||
| 31 | }, | ||
| 32 | "type": "library", | ||
| 33 | "extra": { | ||
| 34 | "branch-alias": { | ||
| 35 | "dev-main": "1.27-dev" | ||
| 36 | }, | ||
| 37 | "thanks": { | ||
| 38 | "name": "symfony/polyfill", | ||
| 39 | "url": "https://github.com/symfony/polyfill" | ||
| 40 | } | ||
| 41 | }, | ||
| 42 | "autoload": { | ||
| 43 | "files": [ | ||
| 44 | "bootstrap.php" | ||
| 45 | ], | ||
| 46 | "psr-4": { | ||
| 47 | "Symfony\\Polyfill\\Mbstring\\": "" | ||
| 48 | } | ||
| 49 | }, | ||
| 50 | "notification-url": "https://packagist.org/downloads/", | ||
| 51 | "license": [ | ||
| 52 | "MIT" | ||
| 53 | ], | ||
| 54 | "authors": [ | ||
| 55 | { | ||
| 56 | "name": "Nicolas Grekas", | ||
| 57 | "email": "p@tchwork.com" | ||
| 58 | }, | ||
| 59 | { | ||
| 60 | "name": "Symfony Community", | ||
| 61 | "homepage": "https://symfony.com/contributors" | ||
| 62 | } | ||
| 63 | ], | ||
| 64 | "description": "Symfony polyfill for the Mbstring extension", | ||
| 65 | "homepage": "https://symfony.com", | ||
| 66 | "keywords": [ | ||
| 67 | "compatibility", | ||
| 68 | "mbstring", | ||
| 69 | "polyfill", | ||
| 70 | "portable", | ||
| 71 | "shim" | ||
| 72 | ], | ||
| 73 | "support": { | ||
| 74 | "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0" | ||
| 75 | }, | ||
| 76 | "funding": [ | ||
| 77 | { | ||
| 78 | "url": "https://symfony.com/sponsor", | ||
| 79 | "type": "custom" | ||
| 80 | }, | ||
| 81 | { | ||
| 82 | "url": "https://github.com/fabpot", | ||
| 83 | "type": "github" | ||
| 84 | }, | ||
| 85 | { | ||
| 86 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", | ||
| 87 | "type": "tidelift" | ||
| 88 | } | ||
| 89 | ], | ||
| 90 | "time": "2022-11-03T14:55:06+00:00" | ||
| 91 | }, | ||
| 92 | { | ||
| 93 | "name": "symfony/var-dumper", | ||
| 94 | "version": "v2.8.52", | ||
| 95 | "source": { | ||
| 96 | "type": "git", | ||
| 97 | "url": "https://github.com/symfony/var-dumper.git", | ||
| 98 | "reference": "91abb1e39d14fb7773d25de9c711949ea8502ac1" | ||
| 99 | }, | ||
| 100 | "dist": { | ||
| 101 | "type": "zip", | ||
| 102 | "url": "https://api.github.com/repos/symfony/var-dumper/zipball/91abb1e39d14fb7773d25de9c711949ea8502ac1", | ||
| 103 | "reference": "91abb1e39d14fb7773d25de9c711949ea8502ac1", | ||
| 104 | "shasum": "" | ||
| 105 | }, | ||
| 106 | "require": { | ||
| 107 | "php": ">=5.3.9", | ||
| 108 | "symfony/polyfill-mbstring": "~1.0" | ||
| 109 | }, | ||
| 110 | "conflict": { | ||
| 111 | "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0" | ||
| 112 | }, | ||
| 113 | "require-dev": { | ||
| 114 | "ext-iconv": "*", | ||
| 115 | "twig/twig": "~1.34|~2.4" | ||
| 116 | }, | ||
| 117 | "suggest": { | ||
| 118 | "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", | ||
| 119 | "ext-symfony_debug": "" | ||
| 120 | }, | ||
| 121 | "type": "library", | ||
| 122 | "extra": { | ||
| 123 | "branch-alias": { | ||
| 124 | "dev-master": "2.8-dev" | ||
| 125 | } | ||
| 126 | }, | ||
| 127 | "autoload": { | ||
| 128 | "files": [ | ||
| 129 | "Resources/functions/dump.php" | ||
| 130 | ], | ||
| 131 | "psr-4": { | ||
| 132 | "Symfony\\Component\\VarDumper\\": "" | ||
| 133 | }, | ||
| 134 | "exclude-from-classmap": [ | ||
| 135 | "/Tests/" | ||
| 136 | ] | ||
| 137 | }, | ||
| 138 | "notification-url": "https://packagist.org/downloads/", | ||
| 139 | "license": [ | ||
| 140 | "MIT" | ||
| 141 | ], | ||
| 142 | "authors": [ | ||
| 143 | { | ||
| 144 | "name": "Nicolas Grekas", | ||
| 145 | "email": "p@tchwork.com" | ||
| 146 | }, | ||
| 147 | { | ||
| 148 | "name": "Symfony Community", | ||
| 149 | "homepage": "https://symfony.com/contributors" | ||
| 150 | } | ||
| 151 | ], | ||
| 152 | "description": "Symfony mechanism for exploring and dumping PHP variables", | ||
| 153 | "homepage": "https://symfony.com", | ||
| 154 | "keywords": [ | ||
| 155 | "debug", | ||
| 156 | "dump" | ||
| 157 | ], | ||
| 158 | "support": { | ||
| 159 | "source": "https://github.com/symfony/var-dumper/tree/v2.8.50" | ||
| 160 | }, | ||
| 161 | "time": "2018-11-11T11:18:13+00:00" | ||
| 162 | }, | ||
| 163 | { | ||
| 164 | "name": "vlucas/phpdotenv", | ||
| 165 | "version": "v1.1.1", | ||
| 166 | "source": { | ||
| 167 | "type": "git", | ||
| 168 | "url": "https://github.com/vlucas/phpdotenv.git", | ||
| 169 | "reference": "0cac554ce06277e33ddf9f0b7ade4b8bbf2af3fa" | ||
| 170 | }, | ||
| 171 | "dist": { | ||
| 172 | "type": "zip", | ||
| 173 | "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/0cac554ce06277e33ddf9f0b7ade4b8bbf2af3fa", | ||
| 174 | "reference": "0cac554ce06277e33ddf9f0b7ade4b8bbf2af3fa", | ||
| 175 | "shasum": "" | ||
| 176 | }, | ||
| 177 | "require": { | ||
| 178 | "php": ">=5.3.2" | ||
| 179 | }, | ||
| 180 | "require-dev": { | ||
| 181 | "phpunit/phpunit": "~4.0" | ||
| 182 | }, | ||
| 183 | "type": "library", | ||
| 184 | "autoload": { | ||
| 185 | "psr-0": { | ||
| 186 | "Dotenv": "src/" | ||
| 187 | } | ||
| 188 | }, | ||
| 189 | "notification-url": "https://packagist.org/downloads/", | ||
| 190 | "license": [ | ||
| 191 | "BSD" | ||
| 192 | ], | ||
| 193 | "authors": [ | ||
| 194 | { | ||
| 195 | "name": "Vance Lucas", | ||
| 196 | "email": "vance@vancelucas.com", | ||
| 197 | "homepage": "http://www.vancelucas.com" | ||
| 198 | } | ||
| 199 | ], | ||
| 200 | "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", | ||
| 201 | "homepage": "http://github.com/vlucas/phpdotenv", | ||
| 202 | "keywords": [ | ||
| 203 | "dotenv", | ||
| 204 | "env", | ||
| 205 | "environment" | ||
| 206 | ], | ||
| 207 | "support": { | ||
| 208 | "issues": "https://github.com/vlucas/phpdotenv/issues", | ||
| 209 | "source": "https://github.com/vlucas/phpdotenv/tree/1.1" | ||
| 210 | }, | ||
| 211 | "time": "2015-05-30T15:59:26+00:00" | ||
| 212 | } | ||
| 213 | ], | ||
| 214 | "packages-dev": [], | ||
| 215 | "aliases": [], | ||
| 216 | "minimum-stability": "stable", | ||
| 217 | "stability-flags": [], | ||
| 218 | "prefer-stable": false, | ||
| 219 | "prefer-lowest": false, | ||
| 220 | "platform": { | ||
| 221 | "php": ">=5.4" | ||
| 222 | }, | ||
| 223 | "platform-dev": [], | ||
| 224 | "plugin-api-version": "2.3.0" | ||
| 225 | } |
index.php
0 → 100644
| 1 | <?php | ||
| 2 | /** | ||
| 3 | * Front to the WordPress application. This file doesn't do anything, but loads | ||
| 4 | * wp-blog-header.php which does and tells WordPress to load the theme. | ||
| 5 | * | ||
| 6 | * @package WordPress | ||
| 7 | */ | ||
| 8 | |||
| 9 | /** | ||
| 10 | * Tells WordPress to load the WordPress theme and output it. | ||
| 11 | * | ||
| 12 | * @var bool | ||
| 13 | */ | ||
| 14 | define( 'WP_USE_THEMES', true ); | ||
| 15 | |||
| 16 | /** Loads the WordPress Environment and Template */ | ||
| 17 | require __DIR__ . '/wp-blog-header.php'; |
license.txt
0 → 100644
This diff is collapsed.
Click to expand it.
readme.html
0 → 100644
| 1 | <!DOCTYPE html> | ||
| 2 | <html lang="en"> | ||
| 3 | <head> | ||
| 4 | <meta name="viewport" content="width=device-width" /> | ||
| 5 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | ||
| 6 | <title>WordPress › ReadMe</title> | ||
| 7 | <link rel="stylesheet" href="wp-admin/css/install.css?ver=20100228" type="text/css" /> | ||
| 8 | </head> | ||
| 9 | <body> | ||
| 10 | <h1 id="logo"> | ||
| 11 | <a href="https://wordpress.org/"><img alt="WordPress" src="wp-admin/images/wordpress-logo.png" /></a> | ||
| 12 | </h1> | ||
| 13 | <p style="text-align: center">Semantic Personal Publishing Platform</p> | ||
| 14 | |||
| 15 | <h2>First Things First</h2> | ||
| 16 | <p>Welcome. WordPress is a very special project to me. Every developer and contributor adds something unique to the mix, and together we create something beautiful that I am proud to be a part of. Thousands of hours have gone into WordPress, and we are dedicated to making it better every day. Thank you for making it part of your world.</p> | ||
| 17 | <p style="text-align: right">— Matt Mullenweg</p> | ||
| 18 | |||
| 19 | <h2>Installation: Famous 5-minute install</h2> | ||
| 20 | <ol> | ||
| 21 | <li>Unzip the package in an empty directory and upload everything.</li> | ||
| 22 | <li>Open <span class="file"><a href="wp-admin/install.php">wp-admin/install.php</a></span> in your browser. It will take you through the process to set up a <code>wp-config.php</code> file with your database connection details. | ||
| 23 | <ol> | ||
| 24 | <li>If for some reason this does not work, do not worry. It may not work on all web hosts. Open up <code>wp-config-sample.php</code> with a text editor like WordPad or similar and fill in your database connection details.</li> | ||
| 25 | <li>Save the file as <code>wp-config.php</code> and upload it.</li> | ||
| 26 | <li>Open <span class="file"><a href="wp-admin/install.php">wp-admin/install.php</a></span> in your browser.</li> | ||
| 27 | </ol> | ||
| 28 | </li> | ||
| 29 | <li>Once the configuration file is set up, the installer will set up the tables needed for your site. If there is an error, double check your <code>wp-config.php</code> file, and try again. If it fails again, please go to the <a href="https://wordpress.org/support/forums/">WordPress support forums</a> with as much data as you can gather.</li> | ||
| 30 | <li><strong>If you did not enter a password, note the password given to you.</strong> If you did not provide a username, it will be <code>admin</code>.</li> | ||
| 31 | <li>The installer should then send you to the <a href="wp-login.php">login page</a>. Sign in with the username and password you chose during the installation. If a password was generated for you, you can then click on “Profile” to change the password.</li> | ||
| 32 | </ol> | ||
| 33 | |||
| 34 | <h2>Updating</h2> | ||
| 35 | <h3>Using the Automatic Updater</h3> | ||
| 36 | <ol> | ||
| 37 | <li>Open <span class="file"><a href="wp-admin/update-core.php">wp-admin/update-core.php</a></span> in your browser and follow the instructions.</li> | ||
| 38 | <li>You wanted more, perhaps? That’s it!</li> | ||
| 39 | </ol> | ||
| 40 | |||
| 41 | <h3>Updating Manually</h3> | ||
| 42 | <ol> | ||
| 43 | <li>Before you update anything, make sure you have backup copies of any files you may have modified such as <code>index.php</code>.</li> | ||
| 44 | <li>Delete your old WordPress files, saving ones you’ve modified.</li> | ||
| 45 | <li>Upload the new files.</li> | ||
| 46 | <li>Point your browser to <span class="file"><a href="wp-admin/upgrade.php">/wp-admin/upgrade.php</a>.</span></li> | ||
| 47 | </ol> | ||
| 48 | |||
| 49 | <h2>Migrating from other systems</h2> | ||
| 50 | <p>WordPress can <a href="https://wordpress.org/support/article/importing-content/">import from a number of systems</a>. First you need to get WordPress installed and working as described above, before using <a href="wp-admin/import.php">our import tools</a>.</p> | ||
| 51 | |||
| 52 | <h2>System Requirements</h2> | ||
| 53 | <ul> | ||
| 54 | <li><a href="https://secure.php.net/">PHP</a> version <strong>5.6.20</strong> or greater.</li> | ||
| 55 | <li><a href="https://www.mysql.com/">MySQL</a> version <strong>5.0</strong> or greater.</li> | ||
| 56 | </ul> | ||
| 57 | |||
| 58 | <h3>Recommendations</h3> | ||
| 59 | <ul> | ||
| 60 | <li><a href="https://secure.php.net/">PHP</a> version <strong>7.4</strong> or greater.</li> | ||
| 61 | <li><a href="https://www.mysql.com/">MySQL</a> version <strong>5.7</strong> or greater OR <a href="https://mariadb.org/">MariaDB</a> version <strong>10.3</strong> or greater.</li> | ||
| 62 | <li>The <a href="https://httpd.apache.org/docs/2.2/mod/mod_rewrite.html">mod_rewrite</a> Apache module.</li> | ||
| 63 | <li><a href="https://wordpress.org/news/2016/12/moving-toward-ssl/">HTTPS</a> support.</li> | ||
| 64 | <li>A link to <a href="https://wordpress.org/">wordpress.org</a> on your site.</li> | ||
| 65 | </ul> | ||
| 66 | |||
| 67 | <h2>Online Resources</h2> | ||
| 68 | <p>If you have any questions that are not addressed in this document, please take advantage of WordPress’ numerous online resources:</p> | ||
| 69 | <dl> | ||
| 70 | <dt><a href="https://wordpress.org/support/">HelpHub</a></dt> | ||
| 71 | <dd>HelpHub is the encyclopedia of all things WordPress. It is the most comprehensive source of information for WordPress available.</dd> | ||
| 72 | <dt><a href="https://wordpress.org/news/">The WordPress Blog</a></dt> | ||
| 73 | <dd>This is where you’ll find the latest updates and news related to WordPress. Recent WordPress news appears in your administrative dashboard by default.</dd> | ||
| 74 | <dt><a href="https://planet.wordpress.org/">WordPress Planet</a></dt> | ||
| 75 | <dd>The WordPress Planet is a news aggregator that brings together posts from WordPress blogs around the web.</dd> | ||
| 76 | <dt><a href="https://wordpress.org/support/forums/">WordPress Support Forums</a></dt> | ||
| 77 | <dd>If you’ve looked everywhere and still cannot find an answer, the support forums are very active and have a large community ready to help. To help them help you be sure to use a descriptive thread title and describe your question in as much detail as possible.</dd> | ||
| 78 | <dt><a href="https://make.wordpress.org/support/handbook/appendix/other-support-locations/introduction-to-irc/">WordPress <abbr>IRC</abbr> (Internet Relay Chat) Channel</a></dt> | ||
| 79 | <dd>There is an online chat channel that is used for discussion among people who use WordPress and occasionally support topics. The above wiki page should point you in the right direction. (<a href="https://web.libera.chat/#wordpress">irc.libera.chat #wordpress</a>)</dd> | ||
| 80 | </dl> | ||
| 81 | |||
| 82 | <h2>Final Notes</h2> | ||
| 83 | <ul> | ||
| 84 | <li>If you have any suggestions, ideas, or comments, or if you (gasp!) found a bug, join us in the <a href="https://wordpress.org/support/forums/">Support Forums</a>.</li> | ||
| 85 | <li>WordPress has a robust plugin <abbr>API</abbr> (Application Programming Interface) that makes extending the code easy. If you are a developer interested in utilizing this, see the <a href="https://developer.wordpress.org/plugins/">Plugin Developer Handbook</a>. You shouldn’t modify any of the core code.</li> | ||
| 86 | </ul> | ||
| 87 | |||
| 88 | <h2>Share the Love</h2> | ||
| 89 | <p>WordPress has no multi-million dollar marketing campaign or celebrity sponsors, but we do have something even better—you. If you enjoy WordPress please consider telling a friend, setting it up for someone less knowledgeable than yourself, or writing the author of a media article that overlooks us.</p> | ||
| 90 | |||
| 91 | <p>WordPress is the official continuation of <a href="http://cafelog.com/">b2/cafélog</a>, which came from Michel V. The work has been continued by the <a href="https://wordpress.org/about/">WordPress developers</a>. If you would like to support WordPress, please consider <a href="https://wordpress.org/donate/">donating</a>.</p> | ||
| 92 | |||
| 93 | <h2>License</h2> | ||
| 94 | <p>WordPress is free software, and is released under the terms of the <abbr>GPL</abbr> (GNU General Public License) version 2 or (at your option) any later version. See <a href="license.txt">license.txt</a>.</p> | ||
| 95 | |||
| 96 | </body> | ||
| 97 | </html> |
vendor/autoload.php
0 → 100644
| 1 | <?php | ||
| 2 | |||
| 3 | // autoload.php @generated by Composer | ||
| 4 | |||
| 5 | if (PHP_VERSION_ID < 50600) { | ||
| 6 | if (!headers_sent()) { | ||
| 7 | header('HTTP/1.1 500 Internal Server Error'); | ||
| 8 | } | ||
| 9 | $err = 'Composer 2.3.0 dropped support for autoloading on PHP <5.6 and you are running '.PHP_VERSION.', please upgrade PHP or use Composer 2.2 LTS via "composer self-update --2.2". Aborting.'.PHP_EOL; | ||
| 10 | if (!ini_get('display_errors')) { | ||
| 11 | if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') { | ||
| 12 | fwrite(STDERR, $err); | ||
| 13 | } elseif (!headers_sent()) { | ||
| 14 | echo $err; | ||
| 15 | } | ||
| 16 | } | ||
| 17 | trigger_error( | ||
| 18 | $err, | ||
| 19 | E_USER_ERROR | ||
| 20 | ); | ||
| 21 | } | ||
| 22 | |||
| 23 | require_once __DIR__ . '/composer/autoload_real.php'; | ||
| 24 | |||
| 25 | return ComposerAutoloaderInit03eba1cd2ecc731639bb7ed2e1143f46::getLoader(); |
vendor/composer/ClassLoader.php
0 → 100644
This diff is collapsed.
Click to expand it.
vendor/composer/InstalledVersions.php
0 → 100644
This diff is collapsed.
Click to expand it.
vendor/composer/LICENSE
0 → 100644
| 1 | |||
| 2 | Copyright (c) Nils Adermann, Jordi Boggiano | ||
| 3 | |||
| 4 | Permission is hereby granted, free of charge, to any person obtaining a copy | ||
| 5 | of this software and associated documentation files (the "Software"), to deal | ||
| 6 | in the Software without restriction, including without limitation the rights | ||
| 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
| 8 | copies of the Software, and to permit persons to whom the Software is furnished | ||
| 9 | to do so, subject to the following conditions: | ||
| 10 | |||
| 11 | The above copyright notice and this permission notice shall be included in all | ||
| 12 | copies or substantial portions of the Software. | ||
| 13 | |||
| 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
| 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
| 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
| 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
| 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||
| 20 | THE SOFTWARE. | ||
| 21 |
vendor/composer/autoload_classmap.php
0 → 100644
vendor/composer/autoload_files.php
0 → 100644
| 1 | <?php | ||
| 2 | |||
| 3 | // autoload_files.php @generated by Composer | ||
| 4 | |||
| 5 | $vendorDir = dirname(__DIR__); | ||
| 6 | $baseDir = dirname($vendorDir); | ||
| 7 | |||
| 8 | return array( | ||
| 9 | '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php', | ||
| 10 | '667aeda72477189d0494fecd327c3641' => $vendorDir . '/symfony/var-dumper/Resources/functions/dump.php', | ||
| 11 | ); |
vendor/composer/autoload_namespaces.php
0 → 100644
vendor/composer/autoload_psr4.php
0 → 100644
| 1 | <?php | ||
| 2 | |||
| 3 | // autoload_psr4.php @generated by Composer | ||
| 4 | |||
| 5 | $vendorDir = dirname(__DIR__); | ||
| 6 | $baseDir = dirname($vendorDir); | ||
| 7 | |||
| 8 | return array( | ||
| 9 | 'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'), | ||
| 10 | 'Symfony\\Component\\VarDumper\\' => array($vendorDir . '/symfony/var-dumper'), | ||
| 11 | ); |
vendor/composer/autoload_real.php
0 → 100644
| 1 | <?php | ||
| 2 | |||
| 3 | // autoload_real.php @generated by Composer | ||
| 4 | |||
| 5 | class ComposerAutoloaderInit03eba1cd2ecc731639bb7ed2e1143f46 | ||
| 6 | { | ||
| 7 | private static $loader; | ||
| 8 | |||
| 9 | public static function loadClassLoader($class) | ||
| 10 | { | ||
| 11 | if ('Composer\Autoload\ClassLoader' === $class) { | ||
| 12 | require __DIR__ . '/ClassLoader.php'; | ||
| 13 | } | ||
| 14 | } | ||
| 15 | |||
| 16 | /** | ||
| 17 | * @return \Composer\Autoload\ClassLoader | ||
| 18 | */ | ||
| 19 | public static function getLoader() | ||
| 20 | { | ||
| 21 | if (null !== self::$loader) { | ||
| 22 | return self::$loader; | ||
| 23 | } | ||
| 24 | |||
| 25 | require __DIR__ . '/platform_check.php'; | ||
| 26 | |||
| 27 | spl_autoload_register(array('ComposerAutoloaderInit03eba1cd2ecc731639bb7ed2e1143f46', 'loadClassLoader'), true, true); | ||
| 28 | self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); | ||
| 29 | spl_autoload_unregister(array('ComposerAutoloaderInit03eba1cd2ecc731639bb7ed2e1143f46', 'loadClassLoader')); | ||
| 30 | |||
| 31 | require __DIR__ . '/autoload_static.php'; | ||
| 32 | call_user_func(\Composer\Autoload\ComposerStaticInit03eba1cd2ecc731639bb7ed2e1143f46::getInitializer($loader)); | ||
| 33 | |||
| 34 | $loader->register(true); | ||
| 35 | |||
| 36 | $filesToLoad = \Composer\Autoload\ComposerStaticInit03eba1cd2ecc731639bb7ed2e1143f46::$files; | ||
| 37 | $requireFile = static function ($fileIdentifier, $file) { | ||
| 38 | if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { | ||
| 39 | $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; | ||
| 40 | |||
| 41 | require $file; | ||
| 42 | } | ||
| 43 | }; | ||
| 44 | foreach ($filesToLoad as $fileIdentifier => $file) { | ||
| 45 | ($requireFile)($fileIdentifier, $file); | ||
| 46 | } | ||
| 47 | |||
| 48 | return $loader; | ||
| 49 | } | ||
| 50 | } |
vendor/composer/autoload_static.php
0 → 100644
| 1 | <?php | ||
| 2 | |||
| 3 | // autoload_static.php @generated by Composer | ||
| 4 | |||
| 5 | namespace Composer\Autoload; | ||
| 6 | |||
| 7 | class ComposerStaticInit03eba1cd2ecc731639bb7ed2e1143f46 | ||
| 8 | { | ||
| 9 | public static $files = array ( | ||
| 10 | '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php', | ||
| 11 | '667aeda72477189d0494fecd327c3641' => __DIR__ . '/..' . '/symfony/var-dumper/Resources/functions/dump.php', | ||
| 12 | ); | ||
| 13 | |||
| 14 | public static $prefixLengthsPsr4 = array ( | ||
| 15 | 'S' => | ||
| 16 | array ( | ||
| 17 | 'Symfony\\Polyfill\\Mbstring\\' => 26, | ||
| 18 | 'Symfony\\Component\\VarDumper\\' => 28, | ||
| 19 | ), | ||
| 20 | ); | ||
| 21 | |||
| 22 | public static $prefixDirsPsr4 = array ( | ||
| 23 | 'Symfony\\Polyfill\\Mbstring\\' => | ||
| 24 | array ( | ||
| 25 | 0 => __DIR__ . '/..' . '/symfony/polyfill-mbstring', | ||
| 26 | ), | ||
| 27 | 'Symfony\\Component\\VarDumper\\' => | ||
| 28 | array ( | ||
| 29 | 0 => __DIR__ . '/..' . '/symfony/var-dumper', | ||
| 30 | ), | ||
| 31 | ); | ||
| 32 | |||
| 33 | public static $prefixesPsr0 = array ( | ||
| 34 | 'D' => | ||
| 35 | array ( | ||
| 36 | 'Dotenv' => | ||
| 37 | array ( | ||
| 38 | 0 => __DIR__ . '/..' . '/vlucas/phpdotenv/src', | ||
| 39 | ), | ||
| 40 | ), | ||
| 41 | ); | ||
| 42 | |||
| 43 | public static $classMap = array ( | ||
| 44 | 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', | ||
| 45 | ); | ||
| 46 | |||
| 47 | public static function getInitializer(ClassLoader $loader) | ||
| 48 | { | ||
| 49 | return \Closure::bind(function () use ($loader) { | ||
| 50 | $loader->prefixLengthsPsr4 = ComposerStaticInit03eba1cd2ecc731639bb7ed2e1143f46::$prefixLengthsPsr4; | ||
| 51 | $loader->prefixDirsPsr4 = ComposerStaticInit03eba1cd2ecc731639bb7ed2e1143f46::$prefixDirsPsr4; | ||
| 52 | $loader->prefixesPsr0 = ComposerStaticInit03eba1cd2ecc731639bb7ed2e1143f46::$prefixesPsr0; | ||
| 53 | $loader->classMap = ComposerStaticInit03eba1cd2ecc731639bb7ed2e1143f46::$classMap; | ||
| 54 | |||
| 55 | }, null, ClassLoader::class); | ||
| 56 | } | ||
| 57 | } |
vendor/composer/installed.json
0 → 100644
| 1 | { | ||
| 2 | "packages": [ | ||
| 3 | { | ||
| 4 | "name": "symfony/polyfill-mbstring", | ||
| 5 | "version": "v1.27.0", | ||
| 6 | "version_normalized": "1.27.0.0", | ||
| 7 | "source": { | ||
| 8 | "type": "git", | ||
| 9 | "url": "https://github.com/symfony/polyfill-mbstring.git", | ||
| 10 | "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" | ||
| 11 | }, | ||
| 12 | "dist": { | ||
| 13 | "type": "zip", | ||
| 14 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", | ||
| 15 | "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", | ||
| 16 | "shasum": "" | ||
| 17 | }, | ||
| 18 | "require": { | ||
| 19 | "php": ">=7.1" | ||
| 20 | }, | ||
| 21 | "provide": { | ||
| 22 | "ext-mbstring": "*" | ||
| 23 | }, | ||
| 24 | "suggest": { | ||
| 25 | "ext-mbstring": "For best performance" | ||
| 26 | }, | ||
| 27 | "time": "2022-11-03T14:55:06+00:00", | ||
| 28 | "type": "library", | ||
| 29 | "extra": { | ||
| 30 | "branch-alias": { | ||
| 31 | "dev-main": "1.27-dev" | ||
| 32 | }, | ||
| 33 | "thanks": { | ||
| 34 | "name": "symfony/polyfill", | ||
| 35 | "url": "https://github.com/symfony/polyfill" | ||
| 36 | } | ||
| 37 | }, | ||
| 38 | "installation-source": "dist", | ||
| 39 | "autoload": { | ||
| 40 | "files": [ | ||
| 41 | "bootstrap.php" | ||
| 42 | ], | ||
| 43 | "psr-4": { | ||
| 44 | "Symfony\\Polyfill\\Mbstring\\": "" | ||
| 45 | } | ||
| 46 | }, | ||
| 47 | "notification-url": "https://packagist.org/downloads/", | ||
| 48 | "license": [ | ||
| 49 | "MIT" | ||
| 50 | ], | ||
| 51 | "authors": [ | ||
| 52 | { | ||
| 53 | "name": "Nicolas Grekas", | ||
| 54 | "email": "p@tchwork.com" | ||
| 55 | }, | ||
| 56 | { | ||
| 57 | "name": "Symfony Community", | ||
| 58 | "homepage": "https://symfony.com/contributors" | ||
| 59 | } | ||
| 60 | ], | ||
| 61 | "description": "Symfony polyfill for the Mbstring extension", | ||
| 62 | "homepage": "https://symfony.com", | ||
| 63 | "keywords": [ | ||
| 64 | "compatibility", | ||
| 65 | "mbstring", | ||
| 66 | "polyfill", | ||
| 67 | "portable", | ||
| 68 | "shim" | ||
| 69 | ], | ||
| 70 | "support": { | ||
| 71 | "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0" | ||
| 72 | }, | ||
| 73 | "funding": [ | ||
| 74 | { | ||
| 75 | "url": "https://symfony.com/sponsor", | ||
| 76 | "type": "custom" | ||
| 77 | }, | ||
| 78 | { | ||
| 79 | "url": "https://github.com/fabpot", | ||
| 80 | "type": "github" | ||
| 81 | }, | ||
| 82 | { | ||
| 83 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", | ||
| 84 | "type": "tidelift" | ||
| 85 | } | ||
| 86 | ], | ||
| 87 | "install-path": "../symfony/polyfill-mbstring" | ||
| 88 | }, | ||
| 89 | { | ||
| 90 | "name": "symfony/var-dumper", | ||
| 91 | "version": "v2.8.52", | ||
| 92 | "version_normalized": "2.8.52.0", | ||
| 93 | "source": { | ||
| 94 | "type": "git", | ||
| 95 | "url": "https://github.com/symfony/var-dumper.git", | ||
| 96 | "reference": "91abb1e39d14fb7773d25de9c711949ea8502ac1" | ||
| 97 | }, | ||
| 98 | "dist": { | ||
| 99 | "type": "zip", | ||
| 100 | "url": "https://api.github.com/repos/symfony/var-dumper/zipball/91abb1e39d14fb7773d25de9c711949ea8502ac1", | ||
| 101 | "reference": "91abb1e39d14fb7773d25de9c711949ea8502ac1", | ||
| 102 | "shasum": "" | ||
| 103 | }, | ||
| 104 | "require": { | ||
| 105 | "php": ">=5.3.9", | ||
| 106 | "symfony/polyfill-mbstring": "~1.0" | ||
| 107 | }, | ||
| 108 | "conflict": { | ||
| 109 | "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0" | ||
| 110 | }, | ||
| 111 | "require-dev": { | ||
| 112 | "ext-iconv": "*", | ||
| 113 | "twig/twig": "~1.34|~2.4" | ||
| 114 | }, | ||
| 115 | "suggest": { | ||
| 116 | "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", | ||
| 117 | "ext-symfony_debug": "" | ||
| 118 | }, | ||
| 119 | "time": "2018-11-11T11:18:13+00:00", | ||
| 120 | "type": "library", | ||
| 121 | "extra": { | ||
| 122 | "branch-alias": { | ||
| 123 | "dev-master": "2.8-dev" | ||
| 124 | } | ||
| 125 | }, | ||
| 126 | "installation-source": "dist", | ||
| 127 | "autoload": { | ||
| 128 | "files": [ | ||
| 129 | "Resources/functions/dump.php" | ||
| 130 | ], | ||
| 131 | "psr-4": { | ||
| 132 | "Symfony\\Component\\VarDumper\\": "" | ||
| 133 | }, | ||
| 134 | "exclude-from-classmap": [ | ||
| 135 | "/Tests/" | ||
| 136 | ] | ||
| 137 | }, | ||
| 138 | "notification-url": "https://packagist.org/downloads/", | ||
| 139 | "license": [ | ||
| 140 | "MIT" | ||
| 141 | ], | ||
| 142 | "authors": [ | ||
| 143 | { | ||
| 144 | "name": "Nicolas Grekas", | ||
| 145 | "email": "p@tchwork.com" | ||
| 146 | }, | ||
| 147 | { | ||
| 148 | "name": "Symfony Community", | ||
| 149 | "homepage": "https://symfony.com/contributors" | ||
| 150 | } | ||
| 151 | ], | ||
| 152 | "description": "Symfony mechanism for exploring and dumping PHP variables", | ||
| 153 | "homepage": "https://symfony.com", | ||
| 154 | "keywords": [ | ||
| 155 | "debug", | ||
| 156 | "dump" | ||
| 157 | ], | ||
| 158 | "support": { | ||
| 159 | "source": "https://github.com/symfony/var-dumper/tree/v2.8.50" | ||
| 160 | }, | ||
| 161 | "install-path": "../symfony/var-dumper" | ||
| 162 | }, | ||
| 163 | { | ||
| 164 | "name": "vlucas/phpdotenv", | ||
| 165 | "version": "v1.1.1", | ||
| 166 | "version_normalized": "1.1.1.0", | ||
| 167 | "source": { | ||
| 168 | "type": "git", | ||
| 169 | "url": "https://github.com/vlucas/phpdotenv.git", | ||
| 170 | "reference": "0cac554ce06277e33ddf9f0b7ade4b8bbf2af3fa" | ||
| 171 | }, | ||
| 172 | "dist": { | ||
| 173 | "type": "zip", | ||
| 174 | "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/0cac554ce06277e33ddf9f0b7ade4b8bbf2af3fa", | ||
| 175 | "reference": "0cac554ce06277e33ddf9f0b7ade4b8bbf2af3fa", | ||
| 176 | "shasum": "" | ||
| 177 | }, | ||
| 178 | "require": { | ||
| 179 | "php": ">=5.3.2" | ||
| 180 | }, | ||
| 181 | "require-dev": { | ||
| 182 | "phpunit/phpunit": "~4.0" | ||
| 183 | }, | ||
| 184 | "time": "2015-05-30T15:59:26+00:00", | ||
| 185 | "type": "library", | ||
| 186 | "installation-source": "dist", | ||
| 187 | "autoload": { | ||
| 188 | "psr-0": { | ||
| 189 | "Dotenv": "src/" | ||
| 190 | } | ||
| 191 | }, | ||
| 192 | "notification-url": "https://packagist.org/downloads/", | ||
| 193 | "license": [ | ||
| 194 | "BSD" | ||
| 195 | ], | ||
| 196 | "authors": [ | ||
| 197 | { | ||
| 198 | "name": "Vance Lucas", | ||
| 199 | "email": "vance@vancelucas.com", | ||
| 200 | "homepage": "http://www.vancelucas.com" | ||
| 201 | } | ||
| 202 | ], | ||
| 203 | "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", | ||
| 204 | "homepage": "http://github.com/vlucas/phpdotenv", | ||
| 205 | "keywords": [ | ||
| 206 | "dotenv", | ||
| 207 | "env", | ||
| 208 | "environment" | ||
| 209 | ], | ||
| 210 | "support": { | ||
| 211 | "issues": "https://github.com/vlucas/phpdotenv/issues", | ||
| 212 | "source": "https://github.com/vlucas/phpdotenv/tree/1.1" | ||
| 213 | }, | ||
| 214 | "install-path": "../vlucas/phpdotenv" | ||
| 215 | } | ||
| 216 | ], | ||
| 217 | "dev": true, | ||
| 218 | "dev-package-names": [] | ||
| 219 | } |
vendor/composer/installed.php
0 → 100644
| 1 | <?php return array( | ||
| 2 | 'root' => array( | ||
| 3 | 'name' => '__root__', | ||
| 4 | 'pretty_version' => '1.0.0+no-version-set', | ||
| 5 | 'version' => '1.0.0.0', | ||
| 6 | 'reference' => NULL, | ||
| 7 | 'type' => 'library', | ||
| 8 | 'install_path' => __DIR__ . '/../../', | ||
| 9 | 'aliases' => array(), | ||
| 10 | 'dev' => true, | ||
| 11 | ), | ||
| 12 | 'versions' => array( | ||
| 13 | '__root__' => array( | ||
| 14 | 'pretty_version' => '1.0.0+no-version-set', | ||
| 15 | 'version' => '1.0.0.0', | ||
| 16 | 'reference' => NULL, | ||
| 17 | 'type' => 'library', | ||
| 18 | 'install_path' => __DIR__ . '/../../', | ||
| 19 | 'aliases' => array(), | ||
| 20 | 'dev_requirement' => false, | ||
| 21 | ), | ||
| 22 | 'symfony/polyfill-mbstring' => array( | ||
| 23 | 'pretty_version' => 'v1.27.0', | ||
| 24 | 'version' => '1.27.0.0', | ||
| 25 | 'reference' => '8ad114f6b39e2c98a8b0e3bd907732c207c2b534', | ||
| 26 | 'type' => 'library', | ||
| 27 | 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', | ||
| 28 | 'aliases' => array(), | ||
| 29 | 'dev_requirement' => false, | ||
| 30 | ), | ||
| 31 | 'symfony/var-dumper' => array( | ||
| 32 | 'pretty_version' => 'v2.8.52', | ||
| 33 | 'version' => '2.8.52.0', | ||
| 34 | 'reference' => '91abb1e39d14fb7773d25de9c711949ea8502ac1', | ||
| 35 | 'type' => 'library', | ||
| 36 | 'install_path' => __DIR__ . '/../symfony/var-dumper', | ||
| 37 | 'aliases' => array(), | ||
| 38 | 'dev_requirement' => false, | ||
| 39 | ), | ||
| 40 | 'vlucas/phpdotenv' => array( | ||
| 41 | 'pretty_version' => 'v1.1.1', | ||
| 42 | 'version' => '1.1.1.0', | ||
| 43 | 'reference' => '0cac554ce06277e33ddf9f0b7ade4b8bbf2af3fa', | ||
| 44 | 'type' => 'library', | ||
| 45 | 'install_path' => __DIR__ . '/../vlucas/phpdotenv', | ||
| 46 | 'aliases' => array(), | ||
| 47 | 'dev_requirement' => false, | ||
| 48 | ), | ||
| 49 | ), | ||
| 50 | ); |
vendor/composer/platform_check.php
0 → 100644
| 1 | <?php | ||
| 2 | |||
| 3 | // platform_check.php @generated by Composer | ||
| 4 | |||
| 5 | $issues = array(); | ||
| 6 | |||
| 7 | if (!(PHP_VERSION_ID >= 70100)) { | ||
| 8 | $issues[] = 'Your Composer dependencies require a PHP version ">= 7.1.0". You are running ' . PHP_VERSION . '.'; | ||
| 9 | } | ||
| 10 | |||
| 11 | if ($issues) { | ||
| 12 | if (!headers_sent()) { | ||
| 13 | header('HTTP/1.1 500 Internal Server Error'); | ||
| 14 | } | ||
| 15 | if (!ini_get('display_errors')) { | ||
| 16 | if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') { | ||
| 17 | fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL); | ||
| 18 | } elseif (!headers_sent()) { | ||
| 19 | echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL; | ||
| 20 | } | ||
| 21 | } | ||
| 22 | trigger_error( | ||
| 23 | 'Composer detected issues in your platform: ' . implode(' ', $issues), | ||
| 24 | E_USER_ERROR | ||
| 25 | ); | ||
| 26 | } |
vendor/symfony/polyfill-mbstring/LICENSE
0 → 100644
| 1 | Copyright (c) 2015-2019 Fabien Potencier | ||
| 2 | |||
| 3 | Permission is hereby granted, free of charge, to any person obtaining a copy | ||
| 4 | of this software and associated documentation files (the "Software"), to deal | ||
| 5 | in the Software without restriction, including without limitation the rights | ||
| 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
| 7 | copies of the Software, and to permit persons to whom the Software is furnished | ||
| 8 | to do so, subject to the following conditions: | ||
| 9 | |||
| 10 | The above copyright notice and this permission notice shall be included in all | ||
| 11 | copies or substantial portions of the Software. | ||
| 12 | |||
| 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
| 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
| 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
| 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
| 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||
| 19 | THE SOFTWARE. |
This diff is collapsed.
Click to expand it.
vendor/symfony/polyfill-mbstring/README.md
0 → 100644
| 1 | Symfony Polyfill / Mbstring | ||
| 2 | =========================== | ||
| 3 | |||
| 4 | This component provides a partial, native PHP implementation for the | ||
| 5 | [Mbstring](https://php.net/mbstring) extension. | ||
| 6 | |||
| 7 | More information can be found in the | ||
| 8 | [main Polyfill README](https://github.com/symfony/polyfill/blob/main/README.md). | ||
| 9 | |||
| 10 | License | ||
| 11 | ======= | ||
| 12 | |||
| 13 | This library is released under the [MIT license](LICENSE). |
This diff is collapsed.
Click to expand it.
| 1 | <?php | ||
| 2 | |||
| 3 | // from Case_Ignorable in https://unicode.org/Public/UNIDATA/DerivedCoreProperties.txt | ||
| 4 | |||
| 5 | return '/(?<![\x{0027}\x{002E}\x{003A}\x{005E}\x{0060}\x{00A8}\x{00AD}\x{00AF}\x{00B4}\x{00B7}\x{00B8}\x{02B0}-\x{02C1}\x{02C2}-\x{02C5}\x{02C6}-\x{02D1}\x{02D2}-\x{02DF}\x{02E0}-\x{02E4}\x{02E5}-\x{02EB}\x{02EC}\x{02ED}\x{02EE}\x{02EF}-\x{02FF}\x{0300}-\x{036F}\x{0374}\x{0375}\x{037A}\x{0384}-\x{0385}\x{0387}\x{0483}-\x{0487}\x{0488}-\x{0489}\x{0559}\x{0591}-\x{05BD}\x{05BF}\x{05C1}-\x{05C2}\x{05C4}-\x{05C5}\x{05C7}\x{05F4}\x{0600}-\x{0605}\x{0610}-\x{061A}\x{061C}\x{0640}\x{064B}-\x{065F}\x{0670}\x{06D6}-\x{06DC}\x{06DD}\x{06DF}-\x{06E4}\x{06E5}-\x{06E6}\x{06E7}-\x{06E8}\x{06EA}-\x{06ED}\x{070F}\x{0711}\x{0730}-\x{074A}\x{07A6}-\x{07B0}\x{07EB}-\x{07F3}\x{07F4}-\x{07F5}\x{07FA}\x{07FD}\x{0816}-\x{0819}\x{081A}\x{081B}-\x{0823}\x{0824}\x{0825}-\x{0827}\x{0828}\x{0829}-\x{082D}\x{0859}-\x{085B}\x{08D3}-\x{08E1}\x{08E2}\x{08E3}-\x{0902}\x{093A}\x{093C}\x{0941}-\x{0948}\x{094D}\x{0951}-\x{0957}\x{0962}-\x{0963}\x{0971}\x{0981}\x{09BC}\x{09C1}-\x{09C4}\x{09CD}\x{09E2}-\x{09E3}\x{09FE}\x{0A01}-\x{0A02}\x{0A3C}\x{0A41}-\x{0A42}\x{0A47}-\x{0A48}\x{0A4B}-\x{0A4D}\x{0A51}\x{0A70}-\x{0A71}\x{0A75}\x{0A81}-\x{0A82}\x{0ABC}\x{0AC1}-\x{0AC5}\x{0AC7}-\x{0AC8}\x{0ACD}\x{0AE2}-\x{0AE3}\x{0AFA}-\x{0AFF}\x{0B01}\x{0B3C}\x{0B3F}\x{0B41}-\x{0B44}\x{0B4D}\x{0B56}\x{0B62}-\x{0B63}\x{0B82}\x{0BC0}\x{0BCD}\x{0C00}\x{0C04}\x{0C3E}-\x{0C40}\x{0C46}-\x{0C48}\x{0C4A}-\x{0C4D}\x{0C55}-\x{0C56}\x{0C62}-\x{0C63}\x{0C81}\x{0CBC}\x{0CBF}\x{0CC6}\x{0CCC}-\x{0CCD}\x{0CE2}-\x{0CE3}\x{0D00}-\x{0D01}\x{0D3B}-\x{0D3C}\x{0D41}-\x{0D44}\x{0D4D}\x{0D62}-\x{0D63}\x{0DCA}\x{0DD2}-\x{0DD4}\x{0DD6}\x{0E31}\x{0E34}-\x{0E3A}\x{0E46}\x{0E47}-\x{0E4E}\x{0EB1}\x{0EB4}-\x{0EB9}\x{0EBB}-\x{0EBC}\x{0EC6}\x{0EC8}-\x{0ECD}\x{0F18}-\x{0F19}\x{0F35}\x{0F37}\x{0F39}\x{0F71}-\x{0F7E}\x{0F80}-\x{0F84}\x{0F86}-\x{0F87}\x{0F8D}-\x{0F97}\x{0F99}-\x{0FBC}\x{0FC6}\x{102D}-\x{1030}\x{1032}-\x{1037}\x{1039}-\x{103A}\x{103D}-\x{103E}\x{1058}-\x{1059}\x{105E}-\x{1060}\x{1071}-\x{1074}\x{1082}\x{1085}-\x{1086}\x{108D}\x{109D}\x{10FC}\x{135D}-\x{135F}\x{1712}-\x{1714}\x{1732}-\x{1734}\x{1752}-\x{1753}\x{1772}-\x{1773}\x{17B4}-\x{17B5}\x{17B7}-\x{17BD}\x{17C6}\x{17C9}-\x{17D3}\x{17D7}\x{17DD}\x{180B}-\x{180D}\x{180E}\x{1843}\x{1885}-\x{1886}\x{18A9}\x{1920}-\x{1922}\x{1927}-\x{1928}\x{1932}\x{1939}-\x{193B}\x{1A17}-\x{1A18}\x{1A1B}\x{1A56}\x{1A58}-\x{1A5E}\x{1A60}\x{1A62}\x{1A65}-\x{1A6C}\x{1A73}-\x{1A7C}\x{1A7F}\x{1AA7}\x{1AB0}-\x{1ABD}\x{1ABE}\x{1B00}-\x{1B03}\x{1B34}\x{1B36}-\x{1B3A}\x{1B3C}\x{1B42}\x{1B6B}-\x{1B73}\x{1B80}-\x{1B81}\x{1BA2}-\x{1BA5}\x{1BA8}-\x{1BA9}\x{1BAB}-\x{1BAD}\x{1BE6}\x{1BE8}-\x{1BE9}\x{1BED}\x{1BEF}-\x{1BF1}\x{1C2C}-\x{1C33}\x{1C36}-\x{1C37}\x{1C78}-\x{1C7D}\x{1CD0}-\x{1CD2}\x{1CD4}-\x{1CE0}\x{1CE2}-\x{1CE8}\x{1CED}\x{1CF4}\x{1CF8}-\x{1CF9}\x{1D2C}-\x{1D6A}\x{1D78}\x{1D9B}-\x{1DBF}\x{1DC0}-\x{1DF9}\x{1DFB}-\x{1DFF}\x{1FBD}\x{1FBF}-\x{1FC1}\x{1FCD}-\x{1FCF}\x{1FDD}-\x{1FDF}\x{1FED}-\x{1FEF}\x{1FFD}-\x{1FFE}\x{200B}-\x{200F}\x{2018}\x{2019}\x{2024}\x{2027}\x{202A}-\x{202E}\x{2060}-\x{2064}\x{2066}-\x{206F}\x{2071}\x{207F}\x{2090}-\x{209C}\x{20D0}-\x{20DC}\x{20DD}-\x{20E0}\x{20E1}\x{20E2}-\x{20E4}\x{20E5}-\x{20F0}\x{2C7C}-\x{2C7D}\x{2CEF}-\x{2CF1}\x{2D6F}\x{2D7F}\x{2DE0}-\x{2DFF}\x{2E2F}\x{3005}\x{302A}-\x{302D}\x{3031}-\x{3035}\x{303B}\x{3099}-\x{309A}\x{309B}-\x{309C}\x{309D}-\x{309E}\x{30FC}-\x{30FE}\x{A015}\x{A4F8}-\x{A4FD}\x{A60C}\x{A66F}\x{A670}-\x{A672}\x{A674}-\x{A67D}\x{A67F}\x{A69C}-\x{A69D}\x{A69E}-\x{A69F}\x{A6F0}-\x{A6F1}\x{A700}-\x{A716}\x{A717}-\x{A71F}\x{A720}-\x{A721}\x{A770}\x{A788}\x{A789}-\x{A78A}\x{A7F8}-\x{A7F9}\x{A802}\x{A806}\x{A80B}\x{A825}-\x{A826}\x{A8C4}-\x{A8C5}\x{A8E0}-\x{A8F1}\x{A8FF}\x{A926}-\x{A92D}\x{A947}-\x{A951}\x{A980}-\x{A982}\x{A9B3}\x{A9B6}-\x{A9B9}\x{A9BC}\x{A9CF}\x{A9E5}\x{A9E6}\x{AA29}-\x{AA2E}\x{AA31}-\x{AA32}\x{AA35}-\x{AA36}\x{AA43}\x{AA4C}\x{AA70}\x{AA7C}\x{AAB0}\x{AAB2}-\x{AAB4}\x{AAB7}-\x{AAB8}\x{AABE}-\x{AABF}\x{AAC1}\x{AADD}\x{AAEC}-\x{AAED}\x{AAF3}-\x{AAF4}\x{AAF6}\x{AB5B}\x{AB5C}-\x{AB5F}\x{ABE5}\x{ABE8}\x{ABED}\x{FB1E}\x{FBB2}-\x{FBC1}\x{FE00}-\x{FE0F}\x{FE13}\x{FE20}-\x{FE2F}\x{FE52}\x{FE55}\x{FEFF}\x{FF07}\x{FF0E}\x{FF1A}\x{FF3E}\x{FF40}\x{FF70}\x{FF9E}-\x{FF9F}\x{FFE3}\x{FFF9}-\x{FFFB}\x{101FD}\x{102E0}\x{10376}-\x{1037A}\x{10A01}-\x{10A03}\x{10A05}-\x{10A06}\x{10A0C}-\x{10A0F}\x{10A38}-\x{10A3A}\x{10A3F}\x{10AE5}-\x{10AE6}\x{10D24}-\x{10D27}\x{10F46}-\x{10F50}\x{11001}\x{11038}-\x{11046}\x{1107F}-\x{11081}\x{110B3}-\x{110B6}\x{110B9}-\x{110BA}\x{110BD}\x{110CD}\x{11100}-\x{11102}\x{11127}-\x{1112B}\x{1112D}-\x{11134}\x{11173}\x{11180}-\x{11181}\x{111B6}-\x{111BE}\x{111C9}-\x{111CC}\x{1122F}-\x{11231}\x{11234}\x{11236}-\x{11237}\x{1123E}\x{112DF}\x{112E3}-\x{112EA}\x{11300}-\x{11301}\x{1133B}-\x{1133C}\x{11340}\x{11366}-\x{1136C}\x{11370}-\x{11374}\x{11438}-\x{1143F}\x{11442}-\x{11444}\x{11446}\x{1145E}\x{114B3}-\x{114B8}\x{114BA}\x{114BF}-\x{114C0}\x{114C2}-\x{114C3}\x{115B2}-\x{115B5}\x{115BC}-\x{115BD}\x{115BF}-\x{115C0}\x{115DC}-\x{115DD}\x{11633}-\x{1163A}\x{1163D}\x{1163F}-\x{11640}\x{116AB}\x{116AD}\x{116B0}-\x{116B5}\x{116B7}\x{1171D}-\x{1171F}\x{11722}-\x{11725}\x{11727}-\x{1172B}\x{1182F}-\x{11837}\x{11839}-\x{1183A}\x{11A01}-\x{11A0A}\x{11A33}-\x{11A38}\x{11A3B}-\x{11A3E}\x{11A47}\x{11A51}-\x{11A56}\x{11A59}-\x{11A5B}\x{11A8A}-\x{11A96}\x{11A98}-\x{11A99}\x{11C30}-\x{11C36}\x{11C38}-\x{11C3D}\x{11C3F}\x{11C92}-\x{11CA7}\x{11CAA}-\x{11CB0}\x{11CB2}-\x{11CB3}\x{11CB5}-\x{11CB6}\x{11D31}-\x{11D36}\x{11D3A}\x{11D3C}-\x{11D3D}\x{11D3F}-\x{11D45}\x{11D47}\x{11D90}-\x{11D91}\x{11D95}\x{11D97}\x{11EF3}-\x{11EF4}\x{16AF0}-\x{16AF4}\x{16B30}-\x{16B36}\x{16B40}-\x{16B43}\x{16F8F}-\x{16F92}\x{16F93}-\x{16F9F}\x{16FE0}-\x{16FE1}\x{1BC9D}-\x{1BC9E}\x{1BCA0}-\x{1BCA3}\x{1D167}-\x{1D169}\x{1D173}-\x{1D17A}\x{1D17B}-\x{1D182}\x{1D185}-\x{1D18B}\x{1D1AA}-\x{1D1AD}\x{1D242}-\x{1D244}\x{1DA00}-\x{1DA36}\x{1DA3B}-\x{1DA6C}\x{1DA75}\x{1DA84}\x{1DA9B}-\x{1DA9F}\x{1DAA1}-\x{1DAAF}\x{1E000}-\x{1E006}\x{1E008}-\x{1E018}\x{1E01B}-\x{1E021}\x{1E023}-\x{1E024}\x{1E026}-\x{1E02A}\x{1E8D0}-\x{1E8D6}\x{1E944}-\x{1E94A}\x{1F3FB}-\x{1F3FF}\x{E0001}\x{E0020}-\x{E007F}\x{E0100}-\x{E01EF}])(\pL)(\pL*+)/u'; |
This diff is collapsed.
Click to expand it.
| 1 | <?php | ||
| 2 | |||
| 3 | /* | ||
| 4 | * This file is part of the Symfony package. | ||
| 5 | * | ||
| 6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
| 7 | * | ||
| 8 | * For the full copyright and license information, please view the LICENSE | ||
| 9 | * file that was distributed with this source code. | ||
| 10 | */ | ||
| 11 | |||
| 12 | use Symfony\Polyfill\Mbstring as p; | ||
| 13 | |||
| 14 | if (\PHP_VERSION_ID >= 80000) { | ||
| 15 | return require __DIR__.'/bootstrap80.php'; | ||
| 16 | } | ||
| 17 | |||
| 18 | if (!function_exists('mb_convert_encoding')) { | ||
| 19 | function mb_convert_encoding($string, $to_encoding, $from_encoding = null) { return p\Mbstring::mb_convert_encoding($string, $to_encoding, $from_encoding); } | ||
| 20 | } | ||
| 21 | if (!function_exists('mb_decode_mimeheader')) { | ||
| 22 | function mb_decode_mimeheader($string) { return p\Mbstring::mb_decode_mimeheader($string); } | ||
| 23 | } | ||
| 24 | if (!function_exists('mb_encode_mimeheader')) { | ||
| 25 | function mb_encode_mimeheader($string, $charset = null, $transfer_encoding = null, $newline = "\r\n", $indent = 0) { return p\Mbstring::mb_encode_mimeheader($string, $charset, $transfer_encoding, $newline, $indent); } | ||
| 26 | } | ||
| 27 | if (!function_exists('mb_decode_numericentity')) { | ||
| 28 | function mb_decode_numericentity($string, $map, $encoding = null) { return p\Mbstring::mb_decode_numericentity($string, $map, $encoding); } | ||
| 29 | } | ||
| 30 | if (!function_exists('mb_encode_numericentity')) { | ||
| 31 | function mb_encode_numericentity($string, $map, $encoding = null, $hex = false) { return p\Mbstring::mb_encode_numericentity($string, $map, $encoding, $hex); } | ||
| 32 | } | ||
| 33 | if (!function_exists('mb_convert_case')) { | ||
| 34 | function mb_convert_case($string, $mode, $encoding = null) { return p\Mbstring::mb_convert_case($string, $mode, $encoding); } | ||
| 35 | } | ||
| 36 | if (!function_exists('mb_internal_encoding')) { | ||
| 37 | function mb_internal_encoding($encoding = null) { return p\Mbstring::mb_internal_encoding($encoding); } | ||
| 38 | } | ||
| 39 | if (!function_exists('mb_language')) { | ||
| 40 | function mb_language($language = null) { return p\Mbstring::mb_language($language); } | ||
| 41 | } | ||
| 42 | if (!function_exists('mb_list_encodings')) { | ||
| 43 | function mb_list_encodings() { return p\Mbstring::mb_list_encodings(); } | ||
| 44 | } | ||
| 45 | if (!function_exists('mb_encoding_aliases')) { | ||
| 46 | function mb_encoding_aliases($encoding) { return p\Mbstring::mb_encoding_aliases($encoding); } | ||
| 47 | } | ||
| 48 | if (!function_exists('mb_check_encoding')) { | ||
| 49 | function mb_check_encoding($value = null, $encoding = null) { return p\Mbstring::mb_check_encoding($value, $encoding); } | ||
| 50 | } | ||
| 51 | if (!function_exists('mb_detect_encoding')) { | ||
| 52 | function mb_detect_encoding($string, $encodings = null, $strict = false) { return p\Mbstring::mb_detect_encoding($string, $encodings, $strict); } | ||
| 53 | } | ||
| 54 | if (!function_exists('mb_detect_order')) { | ||
| 55 | function mb_detect_order($encoding = null) { return p\Mbstring::mb_detect_order($encoding); } | ||
| 56 | } | ||
| 57 | if (!function_exists('mb_parse_str')) { | ||
| 58 | function mb_parse_str($string, &$result = []) { parse_str($string, $result); return (bool) $result; } | ||
| 59 | } | ||
| 60 | if (!function_exists('mb_strlen')) { | ||
| 61 | function mb_strlen($string, $encoding = null) { return p\Mbstring::mb_strlen($string, $encoding); } | ||
| 62 | } | ||
| 63 | if (!function_exists('mb_strpos')) { | ||
| 64 | function mb_strpos($haystack, $needle, $offset = 0, $encoding = null) { return p\Mbstring::mb_strpos($haystack, $needle, $offset, $encoding); } | ||
| 65 | } | ||
| 66 | if (!function_exists('mb_strtolower')) { | ||
| 67 | function mb_strtolower($string, $encoding = null) { return p\Mbstring::mb_strtolower($string, $encoding); } | ||
| 68 | } | ||
| 69 | if (!function_exists('mb_strtoupper')) { | ||
| 70 | function mb_strtoupper($string, $encoding = null) { return p\Mbstring::mb_strtoupper($string, $encoding); } | ||
| 71 | } | ||
| 72 | if (!function_exists('mb_substitute_character')) { | ||
| 73 | function mb_substitute_character($substitute_character = null) { return p\Mbstring::mb_substitute_character($substitute_character); } | ||
| 74 | } | ||
| 75 | if (!function_exists('mb_substr')) { | ||
| 76 | function mb_substr($string, $start, $length = 2147483647, $encoding = null) { return p\Mbstring::mb_substr($string, $start, $length, $encoding); } | ||
| 77 | } | ||
| 78 | if (!function_exists('mb_stripos')) { | ||
| 79 | function mb_stripos($haystack, $needle, $offset = 0, $encoding = null) { return p\Mbstring::mb_stripos($haystack, $needle, $offset, $encoding); } | ||
| 80 | } | ||
| 81 | if (!function_exists('mb_stristr')) { | ||
| 82 | function mb_stristr($haystack, $needle, $before_needle = false, $encoding = null) { return p\Mbstring::mb_stristr($haystack, $needle, $before_needle, $encoding); } | ||
| 83 | } | ||
| 84 | if (!function_exists('mb_strrchr')) { | ||
| 85 | function mb_strrchr($haystack, $needle, $before_needle = false, $encoding = null) { return p\Mbstring::mb_strrchr($haystack, $needle, $before_needle, $encoding); } | ||
| 86 | } | ||
| 87 | if (!function_exists('mb_strrichr')) { | ||
| 88 | function mb_strrichr($haystack, $needle, $before_needle = false, $encoding = null) { return p\Mbstring::mb_strrichr($haystack, $needle, $before_needle, $encoding); } | ||
| 89 | } | ||
| 90 | if (!function_exists('mb_strripos')) { | ||
| 91 | function mb_strripos($haystack, $needle, $offset = 0, $encoding = null) { return p\Mbstring::mb_strripos($haystack, $needle, $offset, $encoding); } | ||
| 92 | } | ||
| 93 | if (!function_exists('mb_strrpos')) { | ||
| 94 | function mb_strrpos($haystack, $needle, $offset = 0, $encoding = null) { return p\Mbstring::mb_strrpos($haystack, $needle, $offset, $encoding); } | ||
| 95 | } | ||
| 96 | if (!function_exists('mb_strstr')) { | ||
| 97 | function mb_strstr($haystack, $needle, $before_needle = false, $encoding = null) { return p\Mbstring::mb_strstr($haystack, $needle, $before_needle, $encoding); } | ||
| 98 | } | ||
| 99 | if (!function_exists('mb_get_info')) { | ||
| 100 | function mb_get_info($type = 'all') { return p\Mbstring::mb_get_info($type); } | ||
| 101 | } | ||
| 102 | if (!function_exists('mb_http_output')) { | ||
| 103 | function mb_http_output($encoding = null) { return p\Mbstring::mb_http_output($encoding); } | ||
| 104 | } | ||
| 105 | if (!function_exists('mb_strwidth')) { | ||
| 106 | function mb_strwidth($string, $encoding = null) { return p\Mbstring::mb_strwidth($string, $encoding); } | ||
| 107 | } | ||
| 108 | if (!function_exists('mb_substr_count')) { | ||
| 109 | function mb_substr_count($haystack, $needle, $encoding = null) { return p\Mbstring::mb_substr_count($haystack, $needle, $encoding); } | ||
| 110 | } | ||
| 111 | if (!function_exists('mb_output_handler')) { | ||
| 112 | function mb_output_handler($string, $status) { return p\Mbstring::mb_output_handler($string, $status); } | ||
| 113 | } | ||
| 114 | if (!function_exists('mb_http_input')) { | ||
| 115 | function mb_http_input($type = null) { return p\Mbstring::mb_http_input($type); } | ||
| 116 | } | ||
| 117 | |||
| 118 | if (!function_exists('mb_convert_variables')) { | ||
| 119 | function mb_convert_variables($to_encoding, $from_encoding, &...$vars) { return p\Mbstring::mb_convert_variables($to_encoding, $from_encoding, ...$vars); } | ||
| 120 | } | ||
| 121 | |||
| 122 | if (!function_exists('mb_ord')) { | ||
| 123 | function mb_ord($string, $encoding = null) { return p\Mbstring::mb_ord($string, $encoding); } | ||
| 124 | } | ||
| 125 | if (!function_exists('mb_chr')) { | ||
| 126 | function mb_chr($codepoint, $encoding = null) { return p\Mbstring::mb_chr($codepoint, $encoding); } | ||
| 127 | } | ||
| 128 | if (!function_exists('mb_scrub')) { | ||
| 129 | function mb_scrub($string, $encoding = null) { $encoding = null === $encoding ? mb_internal_encoding() : $encoding; return mb_convert_encoding($string, $encoding, $encoding); } | ||
| 130 | } | ||
| 131 | if (!function_exists('mb_str_split')) { | ||
| 132 | function mb_str_split($string, $length = 1, $encoding = null) { return p\Mbstring::mb_str_split($string, $length, $encoding); } | ||
| 133 | } | ||
| 134 | |||
| 135 | if (extension_loaded('mbstring')) { | ||
| 136 | return; | ||
| 137 | } | ||
| 138 | |||
| 139 | if (!defined('MB_CASE_UPPER')) { | ||
| 140 | define('MB_CASE_UPPER', 0); | ||
| 141 | } | ||
| 142 | if (!defined('MB_CASE_LOWER')) { | ||
| 143 | define('MB_CASE_LOWER', 1); | ||
| 144 | } | ||
| 145 | if (!defined('MB_CASE_TITLE')) { | ||
| 146 | define('MB_CASE_TITLE', 2); | ||
| 147 | } |
| 1 | <?php | ||
| 2 | |||
| 3 | /* | ||
| 4 | * This file is part of the Symfony package. | ||
| 5 | * | ||
| 6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
| 7 | * | ||
| 8 | * For the full copyright and license information, please view the LICENSE | ||
| 9 | * file that was distributed with this source code. | ||
| 10 | */ | ||
| 11 | |||
| 12 | use Symfony\Polyfill\Mbstring as p; | ||
| 13 | |||
| 14 | if (!function_exists('mb_convert_encoding')) { | ||
| 15 | function mb_convert_encoding(array|string|null $string, ?string $to_encoding, array|string|null $from_encoding = null): array|string|false { return p\Mbstring::mb_convert_encoding($string ?? '', (string) $to_encoding, $from_encoding); } | ||
| 16 | } | ||
| 17 | if (!function_exists('mb_decode_mimeheader')) { | ||
| 18 | function mb_decode_mimeheader(?string $string): string { return p\Mbstring::mb_decode_mimeheader((string) $string); } | ||
| 19 | } | ||
| 20 | if (!function_exists('mb_encode_mimeheader')) { | ||
| 21 | function mb_encode_mimeheader(?string $string, ?string $charset = null, ?string $transfer_encoding = null, ?string $newline = "\r\n", ?int $indent = 0): string { return p\Mbstring::mb_encode_mimeheader((string) $string, $charset, $transfer_encoding, (string) $newline, (int) $indent); } | ||
| 22 | } | ||
| 23 | if (!function_exists('mb_decode_numericentity')) { | ||
| 24 | function mb_decode_numericentity(?string $string, array $map, ?string $encoding = null): string { return p\Mbstring::mb_decode_numericentity((string) $string, $map, $encoding); } | ||
| 25 | } | ||
| 26 | if (!function_exists('mb_encode_numericentity')) { | ||
| 27 | function mb_encode_numericentity(?string $string, array $map, ?string $encoding = null, ?bool $hex = false): string { return p\Mbstring::mb_encode_numericentity((string) $string, $map, $encoding, (bool) $hex); } | ||
| 28 | } | ||
| 29 | if (!function_exists('mb_convert_case')) { | ||
| 30 | function mb_convert_case(?string $string, ?int $mode, ?string $encoding = null): string { return p\Mbstring::mb_convert_case((string) $string, (int) $mode, $encoding); } | ||
| 31 | } | ||
| 32 | if (!function_exists('mb_internal_encoding')) { | ||
| 33 | function mb_internal_encoding(?string $encoding = null): string|bool { return p\Mbstring::mb_internal_encoding($encoding); } | ||
| 34 | } | ||
| 35 | if (!function_exists('mb_language')) { | ||
| 36 | function mb_language(?string $language = null): string|bool { return p\Mbstring::mb_language($language); } | ||
| 37 | } | ||
| 38 | if (!function_exists('mb_list_encodings')) { | ||
| 39 | function mb_list_encodings(): array { return p\Mbstring::mb_list_encodings(); } | ||
| 40 | } | ||
| 41 | if (!function_exists('mb_encoding_aliases')) { | ||
| 42 | function mb_encoding_aliases(?string $encoding): array { return p\Mbstring::mb_encoding_aliases((string) $encoding); } | ||
| 43 | } | ||
| 44 | if (!function_exists('mb_check_encoding')) { | ||
| 45 | function mb_check_encoding(array|string|null $value = null, ?string $encoding = null): bool { return p\Mbstring::mb_check_encoding($value, $encoding); } | ||
| 46 | } | ||
| 47 | if (!function_exists('mb_detect_encoding')) { | ||
| 48 | function mb_detect_encoding(?string $string, array|string|null $encodings = null, ?bool $strict = false): string|false { return p\Mbstring::mb_detect_encoding((string) $string, $encodings, (bool) $strict); } | ||
| 49 | } | ||
| 50 | if (!function_exists('mb_detect_order')) { | ||
| 51 | function mb_detect_order(array|string|null $encoding = null): array|bool { return p\Mbstring::mb_detect_order($encoding); } | ||
| 52 | } | ||
| 53 | if (!function_exists('mb_parse_str')) { | ||
| 54 | function mb_parse_str(?string $string, &$result = []): bool { parse_str((string) $string, $result); return (bool) $result; } | ||
| 55 | } | ||
| 56 | if (!function_exists('mb_strlen')) { | ||
| 57 | function mb_strlen(?string $string, ?string $encoding = null): int { return p\Mbstring::mb_strlen((string) $string, $encoding); } | ||
| 58 | } | ||
| 59 | if (!function_exists('mb_strpos')) { | ||
| 60 | function mb_strpos(?string $haystack, ?string $needle, ?int $offset = 0, ?string $encoding = null): int|false { return p\Mbstring::mb_strpos((string) $haystack, (string) $needle, (int) $offset, $encoding); } | ||
| 61 | } | ||
| 62 | if (!function_exists('mb_strtolower')) { | ||
| 63 | function mb_strtolower(?string $string, ?string $encoding = null): string { return p\Mbstring::mb_strtolower((string) $string, $encoding); } | ||
| 64 | } | ||
| 65 | if (!function_exists('mb_strtoupper')) { | ||
| 66 | function mb_strtoupper(?string $string, ?string $encoding = null): string { return p\Mbstring::mb_strtoupper((string) $string, $encoding); } | ||
| 67 | } | ||
| 68 | if (!function_exists('mb_substitute_character')) { | ||
| 69 | function mb_substitute_character(string|int|null $substitute_character = null): string|int|bool { return p\Mbstring::mb_substitute_character($substitute_character); } | ||
| 70 | } | ||
| 71 | if (!function_exists('mb_substr')) { | ||
| 72 | function mb_substr(?string $string, ?int $start, ?int $length = null, ?string $encoding = null): string { return p\Mbstring::mb_substr((string) $string, (int) $start, $length, $encoding); } | ||
| 73 | } | ||
| 74 | if (!function_exists('mb_stripos')) { | ||
| 75 | function mb_stripos(?string $haystack, ?string $needle, ?int $offset = 0, ?string $encoding = null): int|false { return p\Mbstring::mb_stripos((string) $haystack, (string) $needle, (int) $offset, $encoding); } | ||
| 76 | } | ||
| 77 | if (!function_exists('mb_stristr')) { | ||
| 78 | function mb_stristr(?string $haystack, ?string $needle, ?bool $before_needle = false, ?string $encoding = null): string|false { return p\Mbstring::mb_stristr((string) $haystack, (string) $needle, (bool) $before_needle, $encoding); } | ||
| 79 | } | ||
| 80 | if (!function_exists('mb_strrchr')) { | ||
| 81 | function mb_strrchr(?string $haystack, ?string $needle, ?bool $before_needle = false, ?string $encoding = null): string|false { return p\Mbstring::mb_strrchr((string) $haystack, (string) $needle, (bool) $before_needle, $encoding); } | ||
| 82 | } | ||
| 83 | if (!function_exists('mb_strrichr')) { | ||
| 84 | function mb_strrichr(?string $haystack, ?string $needle, ?bool $before_needle = false, ?string $encoding = null): string|false { return p\Mbstring::mb_strrichr((string) $haystack, (string) $needle, (bool) $before_needle, $encoding); } | ||
| 85 | } | ||
| 86 | if (!function_exists('mb_strripos')) { | ||
| 87 | function mb_strripos(?string $haystack, ?string $needle, ?int $offset = 0, ?string $encoding = null): int|false { return p\Mbstring::mb_strripos((string) $haystack, (string) $needle, (int) $offset, $encoding); } | ||
| 88 | } | ||
| 89 | if (!function_exists('mb_strrpos')) { | ||
| 90 | function mb_strrpos(?string $haystack, ?string $needle, ?int $offset = 0, ?string $encoding = null): int|false { return p\Mbstring::mb_strrpos((string) $haystack, (string) $needle, (int) $offset, $encoding); } | ||
| 91 | } | ||
| 92 | if (!function_exists('mb_strstr')) { | ||
| 93 | function mb_strstr(?string $haystack, ?string $needle, ?bool $before_needle = false, ?string $encoding = null): string|false { return p\Mbstring::mb_strstr((string) $haystack, (string) $needle, (bool) $before_needle, $encoding); } | ||
| 94 | } | ||
| 95 | if (!function_exists('mb_get_info')) { | ||
| 96 | function mb_get_info(?string $type = 'all'): array|string|int|false { return p\Mbstring::mb_get_info((string) $type); } | ||
| 97 | } | ||
| 98 | if (!function_exists('mb_http_output')) { | ||
| 99 | function mb_http_output(?string $encoding = null): string|bool { return p\Mbstring::mb_http_output($encoding); } | ||
| 100 | } | ||
| 101 | if (!function_exists('mb_strwidth')) { | ||
| 102 | function mb_strwidth(?string $string, ?string $encoding = null): int { return p\Mbstring::mb_strwidth((string) $string, $encoding); } | ||
| 103 | } | ||
| 104 | if (!function_exists('mb_substr_count')) { | ||
| 105 | function mb_substr_count(?string $haystack, ?string $needle, ?string $encoding = null): int { return p\Mbstring::mb_substr_count((string) $haystack, (string) $needle, $encoding); } | ||
| 106 | } | ||
| 107 | if (!function_exists('mb_output_handler')) { | ||
| 108 | function mb_output_handler(?string $string, ?int $status): string { return p\Mbstring::mb_output_handler((string) $string, (int) $status); } | ||
| 109 | } | ||
| 110 | if (!function_exists('mb_http_input')) { | ||
| 111 | function mb_http_input(?string $type = null): array|string|false { return p\Mbstring::mb_http_input($type); } | ||
| 112 | } | ||
| 113 | |||
| 114 | if (!function_exists('mb_convert_variables')) { | ||
| 115 | function mb_convert_variables(?string $to_encoding, array|string|null $from_encoding, mixed &$var, mixed &...$vars): string|false { return p\Mbstring::mb_convert_variables((string) $to_encoding, $from_encoding ?? '', $var, ...$vars); } | ||
| 116 | } | ||
| 117 | |||
| 118 | if (!function_exists('mb_ord')) { | ||
| 119 | function mb_ord(?string $string, ?string $encoding = null): int|false { return p\Mbstring::mb_ord((string) $string, $encoding); } | ||
| 120 | } | ||
| 121 | if (!function_exists('mb_chr')) { | ||
| 122 | function mb_chr(?int $codepoint, ?string $encoding = null): string|false { return p\Mbstring::mb_chr((int) $codepoint, $encoding); } | ||
| 123 | } | ||
| 124 | if (!function_exists('mb_scrub')) { | ||
| 125 | function mb_scrub(?string $string, ?string $encoding = null): string { $encoding ??= mb_internal_encoding(); return mb_convert_encoding((string) $string, $encoding, $encoding); } | ||
| 126 | } | ||
| 127 | if (!function_exists('mb_str_split')) { | ||
| 128 | function mb_str_split(?string $string, ?int $length = 1, ?string $encoding = null): array { return p\Mbstring::mb_str_split((string) $string, (int) $length, $encoding); } | ||
| 129 | } | ||
| 130 | |||
| 131 | if (extension_loaded('mbstring')) { | ||
| 132 | return; | ||
| 133 | } | ||
| 134 | |||
| 135 | if (!defined('MB_CASE_UPPER')) { | ||
| 136 | define('MB_CASE_UPPER', 0); | ||
| 137 | } | ||
| 138 | if (!defined('MB_CASE_LOWER')) { | ||
| 139 | define('MB_CASE_LOWER', 1); | ||
| 140 | } | ||
| 141 | if (!defined('MB_CASE_TITLE')) { | ||
| 142 | define('MB_CASE_TITLE', 2); | ||
| 143 | } |
| 1 | { | ||
| 2 | "name": "symfony/polyfill-mbstring", | ||
| 3 | "type": "library", | ||
| 4 | "description": "Symfony polyfill for the Mbstring extension", | ||
| 5 | "keywords": ["polyfill", "shim", "compatibility", "portable", "mbstring"], | ||
| 6 | "homepage": "https://symfony.com", | ||
| 7 | "license": "MIT", | ||
| 8 | "authors": [ | ||
| 9 | { | ||
| 10 | "name": "Nicolas Grekas", | ||
| 11 | "email": "p@tchwork.com" | ||
| 12 | }, | ||
| 13 | { | ||
| 14 | "name": "Symfony Community", | ||
| 15 | "homepage": "https://symfony.com/contributors" | ||
| 16 | } | ||
| 17 | ], | ||
| 18 | "require": { | ||
| 19 | "php": ">=7.1" | ||
| 20 | }, | ||
| 21 | "provide": { | ||
| 22 | "ext-mbstring": "*" | ||
| 23 | }, | ||
| 24 | "autoload": { | ||
| 25 | "psr-4": { "Symfony\\Polyfill\\Mbstring\\": "" }, | ||
| 26 | "files": [ "bootstrap.php" ] | ||
| 27 | }, | ||
| 28 | "suggest": { | ||
| 29 | "ext-mbstring": "For best performance" | ||
| 30 | }, | ||
| 31 | "minimum-stability": "dev", | ||
| 32 | "extra": { | ||
| 33 | "branch-alias": { | ||
| 34 | "dev-main": "1.27-dev" | ||
| 35 | }, | ||
| 36 | "thanks": { | ||
| 37 | "name": "symfony/polyfill", | ||
| 38 | "url": "https://github.com/symfony/polyfill" | ||
| 39 | } | ||
| 40 | } | ||
| 41 | } |
vendor/symfony/var-dumper/.gitignore
0 → 100644
vendor/symfony/var-dumper/CHANGELOG.md
0 → 100644
| 1 | <?php | ||
| 2 | |||
| 3 | /* | ||
| 4 | * This file is part of the Symfony package. | ||
| 5 | * | ||
| 6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
| 7 | * | ||
| 8 | * For the full copyright and license information, please view the LICENSE | ||
| 9 | * file that was distributed with this source code. | ||
| 10 | */ | ||
| 11 | |||
| 12 | namespace Symfony\Component\VarDumper\Caster; | ||
| 13 | |||
| 14 | use Symfony\Component\VarDumper\Cloner\Stub; | ||
| 15 | |||
| 16 | /** | ||
| 17 | * Casts Amqp related classes to array representation. | ||
| 18 | * | ||
| 19 | * @author Grégoire Pineau <lyrixx@lyrixx.info> | ||
| 20 | */ | ||
| 21 | class AmqpCaster | ||
| 22 | { | ||
| 23 | private static $flags = array( | ||
| 24 | AMQP_DURABLE => 'AMQP_DURABLE', | ||
| 25 | AMQP_PASSIVE => 'AMQP_PASSIVE', | ||
| 26 | AMQP_EXCLUSIVE => 'AMQP_EXCLUSIVE', | ||
| 27 | AMQP_AUTODELETE => 'AMQP_AUTODELETE', | ||
| 28 | AMQP_INTERNAL => 'AMQP_INTERNAL', | ||
| 29 | AMQP_NOLOCAL => 'AMQP_NOLOCAL', | ||
| 30 | AMQP_AUTOACK => 'AMQP_AUTOACK', | ||
| 31 | AMQP_IFEMPTY => 'AMQP_IFEMPTY', | ||
| 32 | AMQP_IFUNUSED => 'AMQP_IFUNUSED', | ||
| 33 | AMQP_MANDATORY => 'AMQP_MANDATORY', | ||
| 34 | AMQP_IMMEDIATE => 'AMQP_IMMEDIATE', | ||
| 35 | AMQP_MULTIPLE => 'AMQP_MULTIPLE', | ||
| 36 | AMQP_NOWAIT => 'AMQP_NOWAIT', | ||
| 37 | AMQP_REQUEUE => 'AMQP_REQUEUE', | ||
| 38 | ); | ||
| 39 | |||
| 40 | private static $exchangeTypes = array( | ||
| 41 | AMQP_EX_TYPE_DIRECT => 'AMQP_EX_TYPE_DIRECT', | ||
| 42 | AMQP_EX_TYPE_FANOUT => 'AMQP_EX_TYPE_FANOUT', | ||
| 43 | AMQP_EX_TYPE_TOPIC => 'AMQP_EX_TYPE_TOPIC', | ||
| 44 | AMQP_EX_TYPE_HEADERS => 'AMQP_EX_TYPE_HEADERS', | ||
| 45 | ); | ||
| 46 | |||
| 47 | public static function castConnection(\AMQPConnection $c, array $a, Stub $stub, $isNested) | ||
| 48 | { | ||
| 49 | $prefix = Caster::PREFIX_VIRTUAL; | ||
| 50 | |||
| 51 | $a += array( | ||
| 52 | $prefix.'is_connected' => $c->isConnected(), | ||
| 53 | ); | ||
| 54 | |||
| 55 | // Recent version of the extension already expose private properties | ||
| 56 | if (isset($a["\x00AMQPConnection\x00login"])) { | ||
| 57 | return $a; | ||
| 58 | } | ||
| 59 | |||
| 60 | // BC layer in the amqp lib | ||
| 61 | if (method_exists($c, 'getReadTimeout')) { | ||
| 62 | $timeout = $c->getReadTimeout(); | ||
| 63 | } else { | ||
| 64 | $timeout = $c->getTimeout(); | ||
| 65 | } | ||
| 66 | |||
| 67 | $a += array( | ||
| 68 | $prefix.'is_connected' => $c->isConnected(), | ||
| 69 | $prefix.'login' => $c->getLogin(), | ||
| 70 | $prefix.'password' => $c->getPassword(), | ||
| 71 | $prefix.'host' => $c->getHost(), | ||
| 72 | $prefix.'vhost' => $c->getVhost(), | ||
| 73 | $prefix.'port' => $c->getPort(), | ||
| 74 | $prefix.'read_timeout' => $timeout, | ||
| 75 | ); | ||
| 76 | |||
| 77 | return $a; | ||
| 78 | } | ||
| 79 | |||
| 80 | public static function castChannel(\AMQPChannel $c, array $a, Stub $stub, $isNested) | ||
| 81 | { | ||
| 82 | $prefix = Caster::PREFIX_VIRTUAL; | ||
| 83 | |||
| 84 | $a += array( | ||
| 85 | $prefix.'is_connected' => $c->isConnected(), | ||
| 86 | $prefix.'channel_id' => $c->getChannelId(), | ||
| 87 | ); | ||
| 88 | |||
| 89 | // Recent version of the extension already expose private properties | ||
| 90 | if (isset($a["\x00AMQPChannel\x00connection"])) { | ||
| 91 | return $a; | ||
| 92 | } | ||
| 93 | |||
| 94 | $a += array( | ||
| 95 | $prefix.'connection' => $c->getConnection(), | ||
| 96 | $prefix.'prefetch_size' => $c->getPrefetchSize(), | ||
| 97 | $prefix.'prefetch_count' => $c->getPrefetchCount(), | ||
| 98 | ); | ||
| 99 | |||
| 100 | return $a; | ||
| 101 | } | ||
| 102 | |||
| 103 | public static function castQueue(\AMQPQueue $c, array $a, Stub $stub, $isNested) | ||
| 104 | { | ||
| 105 | $prefix = Caster::PREFIX_VIRTUAL; | ||
| 106 | |||
| 107 | $a += array( | ||
| 108 | $prefix.'flags' => self::extractFlags($c->getFlags()), | ||
| 109 | ); | ||
| 110 | |||
| 111 | // Recent version of the extension already expose private properties | ||
| 112 | if (isset($a["\x00AMQPQueue\x00name"])) { | ||
| 113 | return $a; | ||
| 114 | } | ||
| 115 | |||
| 116 | $a += array( | ||
| 117 | $prefix.'connection' => $c->getConnection(), | ||
| 118 | $prefix.'channel' => $c->getChannel(), | ||
| 119 | $prefix.'name' => $c->getName(), | ||
| 120 | $prefix.'arguments' => $c->getArguments(), | ||
| 121 | ); | ||
| 122 | |||
| 123 | return $a; | ||
| 124 | } | ||
| 125 | |||
| 126 | public static function castExchange(\AMQPExchange $c, array $a, Stub $stub, $isNested) | ||
| 127 | { | ||
| 128 | $prefix = Caster::PREFIX_VIRTUAL; | ||
| 129 | |||
| 130 | $a += array( | ||
| 131 | $prefix.'flags' => self::extractFlags($c->getFlags()), | ||
| 132 | ); | ||
| 133 | |||
| 134 | $type = isset(self::$exchangeTypes[$c->getType()]) ? new ConstStub(self::$exchangeTypes[$c->getType()], $c->getType()) : $c->getType(); | ||
| 135 | |||
| 136 | // Recent version of the extension already expose private properties | ||
| 137 | if (isset($a["\x00AMQPExchange\x00name"])) { | ||
| 138 | $a["\x00AMQPExchange\x00type"] = $type; | ||
| 139 | |||
| 140 | return $a; | ||
| 141 | } | ||
| 142 | |||
| 143 | $a += array( | ||
| 144 | $prefix.'connection' => $c->getConnection(), | ||
| 145 | $prefix.'channel' => $c->getChannel(), | ||
| 146 | $prefix.'name' => $c->getName(), | ||
| 147 | $prefix.'type' => $type, | ||
| 148 | $prefix.'arguments' => $c->getArguments(), | ||
| 149 | ); | ||
| 150 | |||
| 151 | return $a; | ||
| 152 | } | ||
| 153 | |||
| 154 | public static function castEnvelope(\AMQPEnvelope $c, array $a, Stub $stub, $isNested, $filter = 0) | ||
| 155 | { | ||
| 156 | $prefix = Caster::PREFIX_VIRTUAL; | ||
| 157 | |||
| 158 | $deliveryMode = new ConstStub($c->getDeliveryMode().(2 === $c->getDeliveryMode() ? ' (persistent)' : ' (non-persistent)'), $c->getDeliveryMode()); | ||
| 159 | |||
| 160 | // Recent version of the extension already expose private properties | ||
| 161 | if (isset($a["\x00AMQPEnvelope\x00body"])) { | ||
| 162 | $a["\0AMQPEnvelope\0delivery_mode"] = $deliveryMode; | ||
| 163 | |||
| 164 | return $a; | ||
| 165 | } | ||
| 166 | |||
| 167 | if (!($filter & Caster::EXCLUDE_VERBOSE)) { | ||
| 168 | $a += array($prefix.'body' => $c->getBody()); | ||
| 169 | } | ||
| 170 | |||
| 171 | $a += array( | ||
| 172 | $prefix.'delivery_tag' => $c->getDeliveryTag(), | ||
| 173 | $prefix.'is_redelivery' => $c->isRedelivery(), | ||
| 174 | $prefix.'exchange_name' => $c->getExchangeName(), | ||
| 175 | $prefix.'routing_key' => $c->getRoutingKey(), | ||
| 176 | $prefix.'content_type' => $c->getContentType(), | ||
| 177 | $prefix.'content_encoding' => $c->getContentEncoding(), | ||
| 178 | $prefix.'headers' => $c->getHeaders(), | ||
| 179 | $prefix.'delivery_mode' => $deliveryMode, | ||
| 180 | $prefix.'priority' => $c->getPriority(), | ||
| 181 | $prefix.'correlation_id' => $c->getCorrelationId(), | ||
| 182 | $prefix.'reply_to' => $c->getReplyTo(), | ||
| 183 | $prefix.'expiration' => $c->getExpiration(), | ||
| 184 | $prefix.'message_id' => $c->getMessageId(), | ||
| 185 | $prefix.'timestamp' => $c->getTimeStamp(), | ||
| 186 | $prefix.'type' => $c->getType(), | ||
| 187 | $prefix.'user_id' => $c->getUserId(), | ||
| 188 | $prefix.'app_id' => $c->getAppId(), | ||
| 189 | ); | ||
| 190 | |||
| 191 | return $a; | ||
| 192 | } | ||
| 193 | |||
| 194 | private static function extractFlags($flags) | ||
| 195 | { | ||
| 196 | $flagsArray = array(); | ||
| 197 | |||
| 198 | foreach (self::$flags as $value => $name) { | ||
| 199 | if ($flags & $value) { | ||
| 200 | $flagsArray[] = $name; | ||
| 201 | } | ||
| 202 | } | ||
| 203 | |||
| 204 | if (!$flagsArray) { | ||
| 205 | $flagsArray = array('AMQP_NOPARAM'); | ||
| 206 | } | ||
| 207 | |||
| 208 | return new ConstStub(implode('|', $flagsArray), $flags); | ||
| 209 | } | ||
| 210 | } |
vendor/symfony/var-dumper/Caster/Caster.php
0 → 100644
| 1 | <?php | ||
| 2 | |||
| 3 | /* | ||
| 4 | * This file is part of the Symfony package. | ||
| 5 | * | ||
| 6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
| 7 | * | ||
| 8 | * For the full copyright and license information, please view the LICENSE | ||
| 9 | * file that was distributed with this source code. | ||
| 10 | */ | ||
| 11 | |||
| 12 | namespace Symfony\Component\VarDumper\Caster; | ||
| 13 | |||
| 14 | /** | ||
| 15 | * Helper for filtering out properties in casters. | ||
| 16 | * | ||
| 17 | * @author Nicolas Grekas <p@tchwork.com> | ||
| 18 | */ | ||
| 19 | class Caster | ||
| 20 | { | ||
| 21 | const EXCLUDE_VERBOSE = 1; | ||
| 22 | const EXCLUDE_VIRTUAL = 2; | ||
| 23 | const EXCLUDE_DYNAMIC = 4; | ||
| 24 | const EXCLUDE_PUBLIC = 8; | ||
| 25 | const EXCLUDE_PROTECTED = 16; | ||
| 26 | const EXCLUDE_PRIVATE = 32; | ||
| 27 | const EXCLUDE_NULL = 64; | ||
| 28 | const EXCLUDE_EMPTY = 128; | ||
| 29 | const EXCLUDE_NOT_IMPORTANT = 256; | ||
| 30 | const EXCLUDE_STRICT = 512; | ||
| 31 | |||
| 32 | const PREFIX_VIRTUAL = "\0~\0"; | ||
| 33 | const PREFIX_DYNAMIC = "\0+\0"; | ||
| 34 | const PREFIX_PROTECTED = "\0*\0"; | ||
| 35 | |||
| 36 | /** | ||
| 37 | * Casts objects to arrays and adds the dynamic property prefix. | ||
| 38 | * | ||
| 39 | * @param object $obj The object to cast | ||
| 40 | * @param \ReflectionClass $reflector The class reflector to use for inspecting the object definition | ||
| 41 | * | ||
| 42 | * @return array The array-cast of the object, with prefixed dynamic properties | ||
| 43 | */ | ||
| 44 | public static function castObject($obj, \ReflectionClass $reflector) | ||
| 45 | { | ||
| 46 | if ($reflector->hasMethod('__debugInfo')) { | ||
| 47 | $a = $obj->__debugInfo(); | ||
| 48 | } elseif ($obj instanceof \Closure) { | ||
| 49 | $a = array(); | ||
| 50 | } else { | ||
| 51 | $a = (array) $obj; | ||
| 52 | } | ||
| 53 | |||
| 54 | if ($a) { | ||
| 55 | $p = array_keys($a); | ||
| 56 | foreach ($p as $i => $k) { | ||
| 57 | if (isset($k[0]) ? "\0" !== $k[0] && !$reflector->hasProperty($k) : \PHP_VERSION_ID >= 70200) { | ||
| 58 | $p[$i] = self::PREFIX_DYNAMIC.$k; | ||
| 59 | } elseif (isset($k[16]) && "\0" === $k[16] && 0 === strpos($k, "\0class@anonymous\0")) { | ||
| 60 | $p[$i] = "\0".$reflector->getParentClass().'@anonymous'.strrchr($k, "\0"); | ||
| 61 | } | ||
| 62 | } | ||
| 63 | $a = array_combine($p, $a); | ||
| 64 | } | ||
| 65 | |||
| 66 | return $a; | ||
| 67 | } | ||
| 68 | |||
| 69 | /** | ||
| 70 | * Filters out the specified properties. | ||
| 71 | * | ||
| 72 | * By default, a single match in the $filter bit field filters properties out, following an "or" logic. | ||
| 73 | * When EXCLUDE_STRICT is set, an "and" logic is applied: all bits must match for a property to be removed. | ||
| 74 | * | ||
| 75 | * @param array $a The array containing the properties to filter | ||
| 76 | * @param int $filter A bit field of Caster::EXCLUDE_* constants specifying which properties to filter out | ||
| 77 | * @param string[] $listedProperties List of properties to exclude when Caster::EXCLUDE_VERBOSE is set, and to preserve when Caster::EXCLUDE_NOT_IMPORTANT is set | ||
| 78 | * | ||
| 79 | * @return array The filtered array | ||
| 80 | */ | ||
| 81 | public static function filter(array $a, $filter, array $listedProperties = array()) | ||
| 82 | { | ||
| 83 | foreach ($a as $k => $v) { | ||
| 84 | $type = self::EXCLUDE_STRICT & $filter; | ||
| 85 | |||
| 86 | if (null === $v) { | ||
| 87 | $type |= self::EXCLUDE_NULL & $filter; | ||
| 88 | } | ||
| 89 | if (empty($v)) { | ||
| 90 | $type |= self::EXCLUDE_EMPTY & $filter; | ||
| 91 | } | ||
| 92 | if ((self::EXCLUDE_NOT_IMPORTANT & $filter) && !\in_array($k, $listedProperties, true)) { | ||
| 93 | $type |= self::EXCLUDE_NOT_IMPORTANT; | ||
| 94 | } | ||
| 95 | if ((self::EXCLUDE_VERBOSE & $filter) && \in_array($k, $listedProperties, true)) { | ||
| 96 | $type |= self::EXCLUDE_VERBOSE; | ||
| 97 | } | ||
| 98 | |||
| 99 | if (!isset($k[1]) || "\0" !== $k[0]) { | ||
| 100 | $type |= self::EXCLUDE_PUBLIC & $filter; | ||
| 101 | } elseif ('~' === $k[1]) { | ||
| 102 | $type |= self::EXCLUDE_VIRTUAL & $filter; | ||
| 103 | } elseif ('+' === $k[1]) { | ||
| 104 | $type |= self::EXCLUDE_DYNAMIC & $filter; | ||
| 105 | } elseif ('*' === $k[1]) { | ||
| 106 | $type |= self::EXCLUDE_PROTECTED & $filter; | ||
| 107 | } else { | ||
| 108 | $type |= self::EXCLUDE_PRIVATE & $filter; | ||
| 109 | } | ||
| 110 | |||
| 111 | if ((self::EXCLUDE_STRICT & $filter) ? $type === $filter : $type) { | ||
| 112 | unset($a[$k]); | ||
| 113 | } | ||
| 114 | } | ||
| 115 | |||
| 116 | return $a; | ||
| 117 | } | ||
| 118 | } |
| 1 | <?php | ||
| 2 | |||
| 3 | /* | ||
| 4 | * This file is part of the Symfony package. | ||
| 5 | * | ||
| 6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
| 7 | * | ||
| 8 | * For the full copyright and license information, please view the LICENSE | ||
| 9 | * file that was distributed with this source code. | ||
| 10 | */ | ||
| 11 | |||
| 12 | namespace Symfony\Component\VarDumper\Caster; | ||
| 13 | |||
| 14 | use Symfony\Component\VarDumper\Cloner\Stub; | ||
| 15 | |||
| 16 | /** | ||
| 17 | * Represents a PHP constant and its value. | ||
| 18 | * | ||
| 19 | * @author Nicolas Grekas <p@tchwork.com> | ||
| 20 | */ | ||
| 21 | class ConstStub extends Stub | ||
| 22 | { | ||
| 23 | public function __construct($name, $value) | ||
| 24 | { | ||
| 25 | $this->class = $name; | ||
| 26 | $this->value = $value; | ||
| 27 | } | ||
| 28 | } |
| 1 | <?php | ||
| 2 | |||
| 3 | /* | ||
| 4 | * This file is part of the Symfony package. | ||
| 5 | * | ||
| 6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
| 7 | * | ||
| 8 | * For the full copyright and license information, please view the LICENSE | ||
| 9 | * file that was distributed with this source code. | ||
| 10 | */ | ||
| 11 | |||
| 12 | namespace Symfony\Component\VarDumper\Caster; | ||
| 13 | |||
| 14 | /** | ||
| 15 | * Represents a cut array. | ||
| 16 | * | ||
| 17 | * @author Nicolas Grekas <p@tchwork.com> | ||
| 18 | */ | ||
| 19 | class CutArrayStub extends CutStub | ||
| 20 | { | ||
| 21 | public $preservedSubset; | ||
| 22 | |||
| 23 | public function __construct(array $value, array $preservedKeys) | ||
| 24 | { | ||
| 25 | parent::__construct($value); | ||
| 26 | |||
| 27 | $this->preservedSubset = array_intersect_key($value, array_flip($preservedKeys)); | ||
| 28 | $this->cut -= \count($this->preservedSubset); | ||
| 29 | } | ||
| 30 | } |
vendor/symfony/var-dumper/Caster/CutStub.php
0 → 100644
| 1 | <?php | ||
| 2 | |||
| 3 | /* | ||
| 4 | * This file is part of the Symfony package. | ||
| 5 | * | ||
| 6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
| 7 | * | ||
| 8 | * For the full copyright and license information, please view the LICENSE | ||
| 9 | * file that was distributed with this source code. | ||
| 10 | */ | ||
| 11 | |||
| 12 | namespace Symfony\Component\VarDumper\Caster; | ||
| 13 | |||
| 14 | use Symfony\Component\VarDumper\Cloner\Stub; | ||
| 15 | |||
| 16 | /** | ||
| 17 | * Represents the main properties of a PHP variable, pre-casted by a caster. | ||
| 18 | * | ||
| 19 | * @author Nicolas Grekas <p@tchwork.com> | ||
| 20 | */ | ||
| 21 | class CutStub extends Stub | ||
| 22 | { | ||
| 23 | public function __construct($value) | ||
| 24 | { | ||
| 25 | $this->value = $value; | ||
| 26 | |||
| 27 | switch (\gettype($value)) { | ||
| 28 | case 'object': | ||
| 29 | $this->type = self::TYPE_OBJECT; | ||
| 30 | $this->class = \get_class($value); | ||
| 31 | $this->cut = -1; | ||
| 32 | break; | ||
| 33 | |||
| 34 | case 'array': | ||
| 35 | $this->type = self::TYPE_ARRAY; | ||
| 36 | $this->class = self::ARRAY_ASSOC; | ||
| 37 | $this->cut = $this->value = \count($value); | ||
| 38 | break; | ||
| 39 | |||
| 40 | case 'resource': | ||
| 41 | case 'unknown type': | ||
| 42 | case 'resource (closed)': | ||
| 43 | $this->type = self::TYPE_RESOURCE; | ||
| 44 | $this->handle = (int) $value; | ||
| 45 | if ('Unknown' === $this->class = @get_resource_type($value)) { | ||
| 46 | $this->class = 'Closed'; | ||
| 47 | } | ||
| 48 | $this->cut = -1; | ||
| 49 | break; | ||
| 50 | |||
| 51 | case 'string': | ||
| 52 | $this->type = self::TYPE_STRING; | ||
| 53 | $this->class = preg_match('//u', $value) ? self::STRING_UTF8 : self::STRING_BINARY; | ||
| 54 | $this->cut = self::STRING_BINARY === $this->class ? \strlen($value) : mb_strlen($value, 'UTF-8'); | ||
| 55 | $this->value = ''; | ||
| 56 | break; | ||
| 57 | } | ||
| 58 | } | ||
| 59 | } |
| 1 | <?php | ||
| 2 | |||
| 3 | /* | ||
| 4 | * This file is part of the Symfony package. | ||
| 5 | * | ||
| 6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
| 7 | * | ||
| 8 | * For the full copyright and license information, please view the LICENSE | ||
| 9 | * file that was distributed with this source code. | ||
| 10 | */ | ||
| 11 | |||
| 12 | namespace Symfony\Component\VarDumper\Caster; | ||
| 13 | |||
| 14 | use Symfony\Component\VarDumper\Cloner\Stub; | ||
| 15 | |||
| 16 | /** | ||
| 17 | * Casts DOM related classes to array representation. | ||
| 18 | * | ||
| 19 | * @author Nicolas Grekas <p@tchwork.com> | ||
| 20 | */ | ||
| 21 | class DOMCaster | ||
| 22 | { | ||
| 23 | private static $errorCodes = array( | ||
| 24 | DOM_PHP_ERR => 'DOM_PHP_ERR', | ||
| 25 | DOM_INDEX_SIZE_ERR => 'DOM_INDEX_SIZE_ERR', | ||
| 26 | DOMSTRING_SIZE_ERR => 'DOMSTRING_SIZE_ERR', | ||
| 27 | DOM_HIERARCHY_REQUEST_ERR => 'DOM_HIERARCHY_REQUEST_ERR', | ||
| 28 | DOM_WRONG_DOCUMENT_ERR => 'DOM_WRONG_DOCUMENT_ERR', | ||
| 29 | DOM_INVALID_CHARACTER_ERR => 'DOM_INVALID_CHARACTER_ERR', | ||
| 30 | DOM_NO_DATA_ALLOWED_ERR => 'DOM_NO_DATA_ALLOWED_ERR', | ||
| 31 | DOM_NO_MODIFICATION_ALLOWED_ERR => 'DOM_NO_MODIFICATION_ALLOWED_ERR', | ||
| 32 | DOM_NOT_FOUND_ERR => 'DOM_NOT_FOUND_ERR', | ||
| 33 | DOM_NOT_SUPPORTED_ERR => 'DOM_NOT_SUPPORTED_ERR', | ||
| 34 | DOM_INUSE_ATTRIBUTE_ERR => 'DOM_INUSE_ATTRIBUTE_ERR', | ||
| 35 | DOM_INVALID_STATE_ERR => 'DOM_INVALID_STATE_ERR', | ||
| 36 | DOM_SYNTAX_ERR => 'DOM_SYNTAX_ERR', | ||
| 37 | DOM_INVALID_MODIFICATION_ERR => 'DOM_INVALID_MODIFICATION_ERR', | ||
| 38 | DOM_NAMESPACE_ERR => 'DOM_NAMESPACE_ERR', | ||
| 39 | DOM_INVALID_ACCESS_ERR => 'DOM_INVALID_ACCESS_ERR', | ||
| 40 | DOM_VALIDATION_ERR => 'DOM_VALIDATION_ERR', | ||
| 41 | ); | ||
| 42 | |||
| 43 | private static $nodeTypes = array( | ||
| 44 | XML_ELEMENT_NODE => 'XML_ELEMENT_NODE', | ||
| 45 | XML_ATTRIBUTE_NODE => 'XML_ATTRIBUTE_NODE', | ||
| 46 | XML_TEXT_NODE => 'XML_TEXT_NODE', | ||
| 47 | XML_CDATA_SECTION_NODE => 'XML_CDATA_SECTION_NODE', | ||
| 48 | XML_ENTITY_REF_NODE => 'XML_ENTITY_REF_NODE', | ||
| 49 | XML_ENTITY_NODE => 'XML_ENTITY_NODE', | ||
| 50 | XML_PI_NODE => 'XML_PI_NODE', | ||
| 51 | XML_COMMENT_NODE => 'XML_COMMENT_NODE', | ||
| 52 | XML_DOCUMENT_NODE => 'XML_DOCUMENT_NODE', | ||
| 53 | XML_DOCUMENT_TYPE_NODE => 'XML_DOCUMENT_TYPE_NODE', | ||
| 54 | XML_DOCUMENT_FRAG_NODE => 'XML_DOCUMENT_FRAG_NODE', | ||
| 55 | XML_NOTATION_NODE => 'XML_NOTATION_NODE', | ||
| 56 | XML_HTML_DOCUMENT_NODE => 'XML_HTML_DOCUMENT_NODE', | ||
| 57 | XML_DTD_NODE => 'XML_DTD_NODE', | ||
| 58 | XML_ELEMENT_DECL_NODE => 'XML_ELEMENT_DECL_NODE', | ||
| 59 | XML_ATTRIBUTE_DECL_NODE => 'XML_ATTRIBUTE_DECL_NODE', | ||
| 60 | XML_ENTITY_DECL_NODE => 'XML_ENTITY_DECL_NODE', | ||
| 61 | XML_NAMESPACE_DECL_NODE => 'XML_NAMESPACE_DECL_NODE', | ||
| 62 | ); | ||
| 63 | |||
| 64 | public static function castException(\DOMException $e, array $a, Stub $stub, $isNested) | ||
| 65 | { | ||
| 66 | $k = Caster::PREFIX_PROTECTED.'code'; | ||
| 67 | if (isset($a[$k], self::$errorCodes[$a[$k]])) { | ||
| 68 | $a[$k] = new ConstStub(self::$errorCodes[$a[$k]], $a[$k]); | ||
| 69 | } | ||
| 70 | |||
| 71 | return $a; | ||
| 72 | } | ||
| 73 | |||
| 74 | public static function castLength($dom, array $a, Stub $stub, $isNested) | ||
| 75 | { | ||
| 76 | $a += array( | ||
| 77 | 'length' => $dom->length, | ||
| 78 | ); | ||
| 79 | |||
| 80 | return $a; | ||
| 81 | } | ||
| 82 | |||
| 83 | public static function castImplementation($dom, array $a, Stub $stub, $isNested) | ||
| 84 | { | ||
| 85 | $a += array( | ||
| 86 | Caster::PREFIX_VIRTUAL.'Core' => '1.0', | ||
| 87 | Caster::PREFIX_VIRTUAL.'XML' => '2.0', | ||
| 88 | ); | ||
| 89 | |||
| 90 | return $a; | ||
| 91 | } | ||
| 92 | |||
| 93 | public static function castNode(\DOMNode $dom, array $a, Stub $stub, $isNested) | ||
| 94 | { | ||
| 95 | $a += array( | ||
| 96 | 'nodeName' => $dom->nodeName, | ||
| 97 | 'nodeValue' => new CutStub($dom->nodeValue), | ||
| 98 | 'nodeType' => new ConstStub(self::$nodeTypes[$dom->nodeType], $dom->nodeType), | ||
| 99 | 'parentNode' => new CutStub($dom->parentNode), | ||
| 100 | 'childNodes' => $dom->childNodes, | ||
| 101 | 'firstChild' => new CutStub($dom->firstChild), | ||
| 102 | 'lastChild' => new CutStub($dom->lastChild), | ||
| 103 | 'previousSibling' => new CutStub($dom->previousSibling), | ||
| 104 | 'nextSibling' => new CutStub($dom->nextSibling), | ||
| 105 | 'attributes' => $dom->attributes, | ||
| 106 | 'ownerDocument' => new CutStub($dom->ownerDocument), | ||
| 107 | 'namespaceURI' => $dom->namespaceURI, | ||
| 108 | 'prefix' => $dom->prefix, | ||
| 109 | 'localName' => $dom->localName, | ||
| 110 | 'baseURI' => $dom->baseURI, | ||
| 111 | 'textContent' => new CutStub($dom->textContent), | ||
| 112 | ); | ||
| 113 | |||
| 114 | return $a; | ||
| 115 | } | ||
| 116 | |||
| 117 | public static function castNameSpaceNode(\DOMNameSpaceNode $dom, array $a, Stub $stub, $isNested) | ||
| 118 | { | ||
| 119 | $a += array( | ||
| 120 | 'nodeName' => $dom->nodeName, | ||
| 121 | 'nodeValue' => new CutStub($dom->nodeValue), | ||
| 122 | 'nodeType' => new ConstStub(self::$nodeTypes[$dom->nodeType], $dom->nodeType), | ||
| 123 | 'prefix' => $dom->prefix, | ||
| 124 | 'localName' => $dom->localName, | ||
| 125 | 'namespaceURI' => $dom->namespaceURI, | ||
| 126 | 'ownerDocument' => new CutStub($dom->ownerDocument), | ||
| 127 | 'parentNode' => new CutStub($dom->parentNode), | ||
| 128 | ); | ||
| 129 | |||
| 130 | return $a; | ||
| 131 | } | ||
| 132 | |||
| 133 | public static function castDocument(\DOMDocument $dom, array $a, Stub $stub, $isNested, $filter = 0) | ||
| 134 | { | ||
| 135 | $a += array( | ||
| 136 | 'doctype' => $dom->doctype, | ||
| 137 | 'implementation' => $dom->implementation, | ||
| 138 | 'documentElement' => new CutStub($dom->documentElement), | ||
| 139 | 'actualEncoding' => $dom->actualEncoding, | ||
| 140 | 'encoding' => $dom->encoding, | ||
| 141 | 'xmlEncoding' => $dom->xmlEncoding, | ||
| 142 | 'standalone' => $dom->standalone, | ||
| 143 | 'xmlStandalone' => $dom->xmlStandalone, | ||
| 144 | 'version' => $dom->version, | ||
| 145 | 'xmlVersion' => $dom->xmlVersion, | ||
| 146 | 'strictErrorChecking' => $dom->strictErrorChecking, | ||
| 147 | 'documentURI' => $dom->documentURI, | ||
| 148 | 'config' => $dom->config, | ||
| 149 | 'formatOutput' => $dom->formatOutput, | ||
| 150 | 'validateOnParse' => $dom->validateOnParse, | ||
| 151 | 'resolveExternals' => $dom->resolveExternals, | ||
| 152 | 'preserveWhiteSpace' => $dom->preserveWhiteSpace, | ||
| 153 | 'recover' => $dom->recover, | ||
| 154 | 'substituteEntities' => $dom->substituteEntities, | ||
| 155 | ); | ||
| 156 | |||
| 157 | if (!($filter & Caster::EXCLUDE_VERBOSE)) { | ||
| 158 | $formatOutput = $dom->formatOutput; | ||
| 159 | $dom->formatOutput = true; | ||
| 160 | $a += array(Caster::PREFIX_VIRTUAL.'xml' => $dom->saveXML()); | ||
| 161 | $dom->formatOutput = $formatOutput; | ||
| 162 | } | ||
| 163 | |||
| 164 | return $a; | ||
| 165 | } | ||
| 166 | |||
| 167 | public static function castCharacterData(\DOMCharacterData $dom, array $a, Stub $stub, $isNested) | ||
| 168 | { | ||
| 169 | $a += array( | ||
| 170 | 'data' => $dom->data, | ||
| 171 | 'length' => $dom->length, | ||
| 172 | ); | ||
| 173 | |||
| 174 | return $a; | ||
| 175 | } | ||
| 176 | |||
| 177 | public static function castAttr(\DOMAttr $dom, array $a, Stub $stub, $isNested) | ||
| 178 | { | ||
| 179 | $a += array( | ||
| 180 | 'name' => $dom->name, | ||
| 181 | 'specified' => $dom->specified, | ||
| 182 | 'value' => $dom->value, | ||
| 183 | 'ownerElement' => $dom->ownerElement, | ||
| 184 | 'schemaTypeInfo' => $dom->schemaTypeInfo, | ||
| 185 | ); | ||
| 186 | |||
| 187 | return $a; | ||
| 188 | } | ||
| 189 | |||
| 190 | public static function castElement(\DOMElement $dom, array $a, Stub $stub, $isNested) | ||
| 191 | { | ||
| 192 | $a += array( | ||
| 193 | 'tagName' => $dom->tagName, | ||
| 194 | 'schemaTypeInfo' => $dom->schemaTypeInfo, | ||
| 195 | ); | ||
| 196 | |||
| 197 | return $a; | ||
| 198 | } | ||
| 199 | |||
| 200 | public static function castText(\DOMText $dom, array $a, Stub $stub, $isNested) | ||
| 201 | { | ||
| 202 | $a += array( | ||
| 203 | 'wholeText' => $dom->wholeText, | ||
| 204 | ); | ||
| 205 | |||
| 206 | return $a; | ||
| 207 | } | ||
| 208 | |||
| 209 | public static function castTypeinfo(\DOMTypeinfo $dom, array $a, Stub $stub, $isNested) | ||
| 210 | { | ||
| 211 | $a += array( | ||
| 212 | 'typeName' => $dom->typeName, | ||
| 213 | 'typeNamespace' => $dom->typeNamespace, | ||
| 214 | ); | ||
| 215 | |||
| 216 | return $a; | ||
| 217 | } | ||
| 218 | |||
| 219 | public static function castDomError(\DOMDomError $dom, array $a, Stub $stub, $isNested) | ||
| 220 | { | ||
| 221 | $a += array( | ||
| 222 | 'severity' => $dom->severity, | ||
| 223 | 'message' => $dom->message, | ||
| 224 | 'type' => $dom->type, | ||
| 225 | 'relatedException' => $dom->relatedException, | ||
| 226 | 'related_data' => $dom->related_data, | ||
| 227 | 'location' => $dom->location, | ||
| 228 | ); | ||
| 229 | |||
| 230 | return $a; | ||
| 231 | } | ||
| 232 | |||
| 233 | public static function castLocator(\DOMLocator $dom, array $a, Stub $stub, $isNested) | ||
| 234 | { | ||
| 235 | $a += array( | ||
| 236 | 'lineNumber' => $dom->lineNumber, | ||
| 237 | 'columnNumber' => $dom->columnNumber, | ||
| 238 | 'offset' => $dom->offset, | ||
| 239 | 'relatedNode' => $dom->relatedNode, | ||
| 240 | 'uri' => $dom->uri, | ||
| 241 | ); | ||
| 242 | |||
| 243 | return $a; | ||
| 244 | } | ||
| 245 | |||
| 246 | public static function castDocumentType(\DOMDocumentType $dom, array $a, Stub $stub, $isNested) | ||
| 247 | { | ||
| 248 | $a += array( | ||
| 249 | 'name' => $dom->name, | ||
| 250 | 'entities' => $dom->entities, | ||
| 251 | 'notations' => $dom->notations, | ||
| 252 | 'publicId' => $dom->publicId, | ||
| 253 | 'systemId' => $dom->systemId, | ||
| 254 | 'internalSubset' => $dom->internalSubset, | ||
| 255 | ); | ||
| 256 | |||
| 257 | return $a; | ||
| 258 | } | ||
| 259 | |||
| 260 | public static function castNotation(\DOMNotation $dom, array $a, Stub $stub, $isNested) | ||
| 261 | { | ||
| 262 | $a += array( | ||
| 263 | 'publicId' => $dom->publicId, | ||
| 264 | 'systemId' => $dom->systemId, | ||
| 265 | ); | ||
| 266 | |||
| 267 | return $a; | ||
| 268 | } | ||
| 269 | |||
| 270 | public static function castEntity(\DOMEntity $dom, array $a, Stub $stub, $isNested) | ||
| 271 | { | ||
| 272 | $a += array( | ||
| 273 | 'publicId' => $dom->publicId, | ||
| 274 | 'systemId' => $dom->systemId, | ||
| 275 | 'notationName' => $dom->notationName, | ||
| 276 | 'actualEncoding' => $dom->actualEncoding, | ||
| 277 | 'encoding' => $dom->encoding, | ||
| 278 | 'version' => $dom->version, | ||
| 279 | ); | ||
| 280 | |||
| 281 | return $a; | ||
| 282 | } | ||
| 283 | |||
| 284 | public static function castProcessingInstruction(\DOMProcessingInstruction $dom, array $a, Stub $stub, $isNested) | ||
| 285 | { | ||
| 286 | $a += array( | ||
| 287 | 'target' => $dom->target, | ||
| 288 | 'data' => $dom->data, | ||
| 289 | ); | ||
| 290 | |||
| 291 | return $a; | ||
| 292 | } | ||
| 293 | |||
| 294 | public static function castXPath(\DOMXPath $dom, array $a, Stub $stub, $isNested) | ||
| 295 | { | ||
| 296 | $a += array( | ||
| 297 | 'document' => $dom->document, | ||
| 298 | ); | ||
| 299 | |||
| 300 | return $a; | ||
| 301 | } | ||
| 302 | } |
| 1 | <?php | ||
| 2 | |||
| 3 | /* | ||
| 4 | * This file is part of the Symfony package. | ||
| 5 | * | ||
| 6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
| 7 | * | ||
| 8 | * For the full copyright and license information, please view the LICENSE | ||
| 9 | * file that was distributed with this source code. | ||
| 10 | */ | ||
| 11 | |||
| 12 | namespace Symfony\Component\VarDumper\Caster; | ||
| 13 | |||
| 14 | use Doctrine\Common\Proxy\Proxy as CommonProxy; | ||
| 15 | use Doctrine\ORM\PersistentCollection; | ||
| 16 | use Doctrine\ORM\Proxy\Proxy as OrmProxy; | ||
| 17 | use Symfony\Component\VarDumper\Cloner\Stub; | ||
| 18 | |||
| 19 | /** | ||
| 20 | * Casts Doctrine related classes to array representation. | ||
| 21 | * | ||
| 22 | * @author Nicolas Grekas <p@tchwork.com> | ||
| 23 | */ | ||
| 24 | class DoctrineCaster | ||
| 25 | { | ||
| 26 | public static function castCommonProxy(CommonProxy $proxy, array $a, Stub $stub, $isNested) | ||
| 27 | { | ||
| 28 | foreach (array('__cloner__', '__initializer__') as $k) { | ||
| 29 | if (array_key_exists($k, $a)) { | ||
| 30 | unset($a[$k]); | ||
| 31 | ++$stub->cut; | ||
| 32 | } | ||
| 33 | } | ||
| 34 | |||
| 35 | return $a; | ||
| 36 | } | ||
| 37 | |||
| 38 | public static function castOrmProxy(OrmProxy $proxy, array $a, Stub $stub, $isNested) | ||
| 39 | { | ||
| 40 | foreach (array('_entityPersister', '_identifier') as $k) { | ||
| 41 | if (array_key_exists($k = "\0Doctrine\\ORM\\Proxy\\Proxy\0".$k, $a)) { | ||
| 42 | unset($a[$k]); | ||
| 43 | ++$stub->cut; | ||
| 44 | } | ||
| 45 | } | ||
| 46 | |||
| 47 | return $a; | ||
| 48 | } | ||
| 49 | |||
| 50 | public static function castPersistentCollection(PersistentCollection $coll, array $a, Stub $stub, $isNested) | ||
| 51 | { | ||
| 52 | foreach (array('snapshot', 'association', 'typeClass') as $k) { | ||
| 53 | if (array_key_exists($k = "\0Doctrine\\ORM\\PersistentCollection\0".$k, $a)) { | ||
| 54 | $a[$k] = new CutStub($a[$k]); | ||
| 55 | } | ||
| 56 | } | ||
| 57 | |||
| 58 | return $a; | ||
| 59 | } | ||
| 60 | } |
| 1 | <?php | ||
| 2 | |||
| 3 | /* | ||
| 4 | * This file is part of the Symfony package. | ||
| 5 | * | ||
| 6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
| 7 | * | ||
| 8 | * For the full copyright and license information, please view the LICENSE | ||
| 9 | * file that was distributed with this source code. | ||
| 10 | */ | ||
| 11 | |||
| 12 | namespace Symfony\Component\VarDumper\Caster; | ||
| 13 | |||
| 14 | use Symfony\Component\VarDumper\Cloner\Stub; | ||
| 15 | |||
| 16 | /** | ||
| 17 | * Represents an enumeration of values. | ||
| 18 | * | ||
| 19 | * @author Nicolas Grekas <p@tchwork.com> | ||
| 20 | */ | ||
| 21 | class EnumStub extends Stub | ||
| 22 | { | ||
| 23 | public function __construct(array $values) | ||
| 24 | { | ||
| 25 | $this->value = $values; | ||
| 26 | } | ||
| 27 | } |
This diff is collapsed.
Click to expand it.
| 1 | <?php | ||
| 2 | |||
| 3 | /* | ||
| 4 | * This file is part of the Symfony package. | ||
| 5 | * | ||
| 6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
| 7 | * | ||
| 8 | * For the full copyright and license information, please view the LICENSE | ||
| 9 | * file that was distributed with this source code. | ||
| 10 | */ | ||
| 11 | |||
| 12 | namespace Symfony\Component\VarDumper\Caster; | ||
| 13 | |||
| 14 | /** | ||
| 15 | * Represents a single backtrace frame as returned by debug_backtrace() or Exception->getTrace(). | ||
| 16 | * | ||
| 17 | * @author Nicolas Grekas <p@tchwork.com> | ||
| 18 | */ | ||
| 19 | class FrameStub extends EnumStub | ||
| 20 | { | ||
| 21 | public $keepArgs; | ||
| 22 | public $inTraceStub; | ||
| 23 | |||
| 24 | public function __construct(array $frame, $keepArgs = true, $inTraceStub = false) | ||
| 25 | { | ||
| 26 | $this->value = $frame; | ||
| 27 | $this->keepArgs = $keepArgs; | ||
| 28 | $this->inTraceStub = $inTraceStub; | ||
| 29 | } | ||
| 30 | } |
| 1 | <?php | ||
| 2 | |||
| 3 | /* | ||
| 4 | * This file is part of the Symfony package. | ||
| 5 | * | ||
| 6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
| 7 | * | ||
| 8 | * For the full copyright and license information, please view the LICENSE | ||
| 9 | * file that was distributed with this source code. | ||
| 10 | */ | ||
| 11 | |||
| 12 | namespace Symfony\Component\VarDumper\Caster; | ||
| 13 | |||
| 14 | use Symfony\Component\VarDumper\Cloner\Stub; | ||
| 15 | |||
| 16 | /** | ||
| 17 | * Casts classes from the MongoDb extension to array representation. | ||
| 18 | * | ||
| 19 | * @author Nicolas Grekas <p@tchwork.com> | ||
| 20 | */ | ||
| 21 | class MongoCaster | ||
| 22 | { | ||
| 23 | public static function castCursor(\MongoCursorInterface $cursor, array $a, Stub $stub, $isNested) | ||
| 24 | { | ||
| 25 | if ($info = $cursor->info()) { | ||
| 26 | foreach ($info as $k => $v) { | ||
| 27 | $a[Caster::PREFIX_VIRTUAL.$k] = $v; | ||
| 28 | } | ||
| 29 | } | ||
| 30 | $a[Caster::PREFIX_VIRTUAL.'dead'] = $cursor->dead(); | ||
| 31 | |||
| 32 | return $a; | ||
| 33 | } | ||
| 34 | } |
| 1 | <?php | ||
| 2 | |||
| 3 | /* | ||
| 4 | * This file is part of the Symfony package. | ||
| 5 | * | ||
| 6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
| 7 | * | ||
| 8 | * For the full copyright and license information, please view the LICENSE | ||
| 9 | * file that was distributed with this source code. | ||
| 10 | */ | ||
| 11 | |||
| 12 | namespace Symfony\Component\VarDumper\Caster; | ||
| 13 | |||
| 14 | use Symfony\Component\VarDumper\Cloner\Stub; | ||
| 15 | |||
| 16 | /** | ||
| 17 | * Casts PDO related classes to array representation. | ||
| 18 | * | ||
| 19 | * @author Nicolas Grekas <p@tchwork.com> | ||
| 20 | */ | ||
| 21 | class PdoCaster | ||
| 22 | { | ||
| 23 | private static $pdoAttributes = array( | ||
| 24 | 'CASE' => array( | ||
| 25 | \PDO::CASE_LOWER => 'LOWER', | ||
| 26 | \PDO::CASE_NATURAL => 'NATURAL', | ||
| 27 | \PDO::CASE_UPPER => 'UPPER', | ||
| 28 | ), | ||
| 29 | 'ERRMODE' => array( | ||
| 30 | \PDO::ERRMODE_SILENT => 'SILENT', | ||
| 31 | \PDO::ERRMODE_WARNING => 'WARNING', | ||
| 32 | \PDO::ERRMODE_EXCEPTION => 'EXCEPTION', | ||
| 33 | ), | ||
| 34 | 'TIMEOUT', | ||
| 35 | 'PREFETCH', | ||
| 36 | 'AUTOCOMMIT', | ||
| 37 | 'PERSISTENT', | ||
| 38 | 'DRIVER_NAME', | ||
| 39 | 'SERVER_INFO', | ||
| 40 | 'ORACLE_NULLS' => array( | ||
| 41 | \PDO::NULL_NATURAL => 'NATURAL', | ||
| 42 | \PDO::NULL_EMPTY_STRING => 'EMPTY_STRING', | ||
| 43 | \PDO::NULL_TO_STRING => 'TO_STRING', | ||
| 44 | ), | ||
| 45 | 'CLIENT_VERSION', | ||
| 46 | 'SERVER_VERSION', | ||
| 47 | 'STATEMENT_CLASS', | ||
| 48 | 'EMULATE_PREPARES', | ||
| 49 | 'CONNECTION_STATUS', | ||
| 50 | 'STRINGIFY_FETCHES', | ||
| 51 | 'DEFAULT_FETCH_MODE' => array( | ||
| 52 | \PDO::FETCH_ASSOC => 'ASSOC', | ||
| 53 | \PDO::FETCH_BOTH => 'BOTH', | ||
| 54 | \PDO::FETCH_LAZY => 'LAZY', | ||
| 55 | \PDO::FETCH_NUM => 'NUM', | ||
| 56 | \PDO::FETCH_OBJ => 'OBJ', | ||
| 57 | ), | ||
| 58 | ); | ||
| 59 | |||
| 60 | public static function castPdo(\PDO $c, array $a, Stub $stub, $isNested) | ||
| 61 | { | ||
| 62 | $attr = array(); | ||
| 63 | $errmode = $c->getAttribute(\PDO::ATTR_ERRMODE); | ||
| 64 | $c->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); | ||
| 65 | |||
| 66 | foreach (self::$pdoAttributes as $k => $v) { | ||
| 67 | if (!isset($k[0])) { | ||
| 68 | $k = $v; | ||
| 69 | $v = array(); | ||
| 70 | } | ||
| 71 | |||
| 72 | try { | ||
| 73 | $attr[$k] = 'ERRMODE' === $k ? $errmode : $c->getAttribute(\constant('PDO::ATTR_'.$k)); | ||
| 74 | if ($v && isset($v[$attr[$k]])) { | ||
| 75 | $attr[$k] = new ConstStub($v[$attr[$k]], $attr[$k]); | ||
| 76 | } | ||
| 77 | } catch (\Exception $e) { | ||
| 78 | } | ||
| 79 | } | ||
| 80 | |||
| 81 | $prefix = Caster::PREFIX_VIRTUAL; | ||
| 82 | $a += array( | ||
| 83 | $prefix.'inTransaction' => method_exists($c, 'inTransaction'), | ||
| 84 | $prefix.'errorInfo' => $c->errorInfo(), | ||
| 85 | $prefix.'attributes' => new EnumStub($attr), | ||
| 86 | ); | ||
| 87 | |||
| 88 | if ($a[$prefix.'inTransaction']) { | ||
| 89 | $a[$prefix.'inTransaction'] = $c->inTransaction(); | ||
| 90 | } else { | ||
| 91 | unset($a[$prefix.'inTransaction']); | ||
| 92 | } | ||
| 93 | |||
| 94 | if (!isset($a[$prefix.'errorInfo'][1], $a[$prefix.'errorInfo'][2])) { | ||
| 95 | unset($a[$prefix.'errorInfo']); | ||
| 96 | } | ||
| 97 | |||
| 98 | $c->setAttribute(\PDO::ATTR_ERRMODE, $errmode); | ||
| 99 | |||
| 100 | return $a; | ||
| 101 | } | ||
| 102 | |||
| 103 | public static function castPdoStatement(\PDOStatement $c, array $a, Stub $stub, $isNested) | ||
| 104 | { | ||
| 105 | $prefix = Caster::PREFIX_VIRTUAL; | ||
| 106 | $a[$prefix.'errorInfo'] = $c->errorInfo(); | ||
| 107 | |||
| 108 | if (!isset($a[$prefix.'errorInfo'][1], $a[$prefix.'errorInfo'][2])) { | ||
| 109 | unset($a[$prefix.'errorInfo']); | ||
| 110 | } | ||
| 111 | |||
| 112 | return $a; | ||
| 113 | } | ||
| 114 | } |
| 1 | <?php | ||
| 2 | |||
| 3 | /* | ||
| 4 | * This file is part of the Symfony package. | ||
| 5 | * | ||
| 6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
| 7 | * | ||
| 8 | * For the full copyright and license information, please view the LICENSE | ||
| 9 | * file that was distributed with this source code. | ||
| 10 | */ | ||
| 11 | |||
| 12 | namespace Symfony\Component\VarDumper\Caster; | ||
| 13 | |||
| 14 | use Symfony\Component\VarDumper\Cloner\Stub; | ||
| 15 | |||
| 16 | /** | ||
| 17 | * Casts pqsql resources to array representation. | ||
| 18 | * | ||
| 19 | * @author Nicolas Grekas <p@tchwork.com> | ||
| 20 | */ | ||
| 21 | class PgSqlCaster | ||
| 22 | { | ||
| 23 | private static $paramCodes = array( | ||
| 24 | 'server_encoding', | ||
| 25 | 'client_encoding', | ||
| 26 | 'is_superuser', | ||
| 27 | 'session_authorization', | ||
| 28 | 'DateStyle', | ||
| 29 | 'TimeZone', | ||
| 30 | 'IntervalStyle', | ||
| 31 | 'integer_datetimes', | ||
| 32 | 'application_name', | ||
| 33 | 'standard_conforming_strings', | ||
| 34 | ); | ||
| 35 | |||
| 36 | private static $transactionStatus = array( | ||
| 37 | PGSQL_TRANSACTION_IDLE => 'PGSQL_TRANSACTION_IDLE', | ||
| 38 | PGSQL_TRANSACTION_ACTIVE => 'PGSQL_TRANSACTION_ACTIVE', | ||
| 39 | PGSQL_TRANSACTION_INTRANS => 'PGSQL_TRANSACTION_INTRANS', | ||
| 40 | PGSQL_TRANSACTION_INERROR => 'PGSQL_TRANSACTION_INERROR', | ||
| 41 | PGSQL_TRANSACTION_UNKNOWN => 'PGSQL_TRANSACTION_UNKNOWN', | ||
| 42 | ); | ||
| 43 | |||
| 44 | private static $resultStatus = array( | ||
| 45 | PGSQL_EMPTY_QUERY => 'PGSQL_EMPTY_QUERY', | ||
| 46 | PGSQL_COMMAND_OK => 'PGSQL_COMMAND_OK', | ||
| 47 | PGSQL_TUPLES_OK => 'PGSQL_TUPLES_OK', | ||
| 48 | PGSQL_COPY_OUT => 'PGSQL_COPY_OUT', | ||
| 49 | PGSQL_COPY_IN => 'PGSQL_COPY_IN', | ||
| 50 | PGSQL_BAD_RESPONSE => 'PGSQL_BAD_RESPONSE', | ||
| 51 | PGSQL_NONFATAL_ERROR => 'PGSQL_NONFATAL_ERROR', | ||
| 52 | PGSQL_FATAL_ERROR => 'PGSQL_FATAL_ERROR', | ||
| 53 | ); | ||
| 54 | |||
| 55 | private static $diagCodes = array( | ||
| 56 | 'severity' => PGSQL_DIAG_SEVERITY, | ||
| 57 | 'sqlstate' => PGSQL_DIAG_SQLSTATE, | ||
| 58 | 'message' => PGSQL_DIAG_MESSAGE_PRIMARY, | ||
| 59 | 'detail' => PGSQL_DIAG_MESSAGE_DETAIL, | ||
| 60 | 'hint' => PGSQL_DIAG_MESSAGE_HINT, | ||
| 61 | 'statement position' => PGSQL_DIAG_STATEMENT_POSITION, | ||
| 62 | 'internal position' => PGSQL_DIAG_INTERNAL_POSITION, | ||
| 63 | 'internal query' => PGSQL_DIAG_INTERNAL_QUERY, | ||
| 64 | 'context' => PGSQL_DIAG_CONTEXT, | ||
| 65 | 'file' => PGSQL_DIAG_SOURCE_FILE, | ||
| 66 | 'line' => PGSQL_DIAG_SOURCE_LINE, | ||
| 67 | 'function' => PGSQL_DIAG_SOURCE_FUNCTION, | ||
| 68 | ); | ||
| 69 | |||
| 70 | public static function castLargeObject($lo, array $a, Stub $stub, $isNested) | ||
| 71 | { | ||
| 72 | $a['seek position'] = pg_lo_tell($lo); | ||
| 73 | |||
| 74 | return $a; | ||
| 75 | } | ||
| 76 | |||
| 77 | public static function castLink($link, array $a, Stub $stub, $isNested) | ||
| 78 | { | ||
| 79 | $a['status'] = pg_connection_status($link); | ||
| 80 | $a['status'] = new ConstStub(PGSQL_CONNECTION_OK === $a['status'] ? 'PGSQL_CONNECTION_OK' : 'PGSQL_CONNECTION_BAD', $a['status']); | ||
| 81 | $a['busy'] = pg_connection_busy($link); | ||
| 82 | |||
| 83 | $a['transaction'] = pg_transaction_status($link); | ||
| 84 | if (isset(self::$transactionStatus[$a['transaction']])) { | ||
| 85 | $a['transaction'] = new ConstStub(self::$transactionStatus[$a['transaction']], $a['transaction']); | ||
| 86 | } | ||
| 87 | |||
| 88 | $a['pid'] = pg_get_pid($link); | ||
| 89 | $a['last error'] = pg_last_error($link); | ||
| 90 | $a['last notice'] = pg_last_notice($link); | ||
| 91 | $a['host'] = pg_host($link); | ||
| 92 | $a['port'] = pg_port($link); | ||
| 93 | $a['dbname'] = pg_dbname($link); | ||
| 94 | $a['options'] = pg_options($link); | ||
| 95 | $a['version'] = pg_version($link); | ||
| 96 | |||
| 97 | foreach (self::$paramCodes as $v) { | ||
| 98 | if (false !== $s = pg_parameter_status($link, $v)) { | ||
| 99 | $a['param'][$v] = $s; | ||
| 100 | } | ||
| 101 | } | ||
| 102 | |||
| 103 | $a['param']['client_encoding'] = pg_client_encoding($link); | ||
| 104 | $a['param'] = new EnumStub($a['param']); | ||
| 105 | |||
| 106 | return $a; | ||
| 107 | } | ||
| 108 | |||
| 109 | public static function castResult($result, array $a, Stub $stub, $isNested) | ||
| 110 | { | ||
| 111 | $a['num rows'] = pg_num_rows($result); | ||
| 112 | $a['status'] = pg_result_status($result); | ||
| 113 | if (isset(self::$resultStatus[$a['status']])) { | ||
| 114 | $a['status'] = new ConstStub(self::$resultStatus[$a['status']], $a['status']); | ||
| 115 | } | ||
| 116 | $a['command-completion tag'] = pg_result_status($result, PGSQL_STATUS_STRING); | ||
| 117 | |||
| 118 | if (-1 === $a['num rows']) { | ||
| 119 | foreach (self::$diagCodes as $k => $v) { | ||
| 120 | $a['error'][$k] = pg_result_error_field($result, $v); | ||
| 121 | } | ||
| 122 | } | ||
| 123 | |||
| 124 | $a['affected rows'] = pg_affected_rows($result); | ||
| 125 | $a['last OID'] = pg_last_oid($result); | ||
| 126 | |||
| 127 | $fields = pg_num_fields($result); | ||
| 128 | |||
| 129 | for ($i = 0; $i < $fields; ++$i) { | ||
| 130 | $field = array( | ||
| 131 | 'name' => pg_field_name($result, $i), | ||
| 132 | 'table' => sprintf('%s (OID: %s)', pg_field_table($result, $i), pg_field_table($result, $i, true)), | ||
| 133 | 'type' => sprintf('%s (OID: %s)', pg_field_type($result, $i), pg_field_type_oid($result, $i)), | ||
| 134 | 'nullable' => (bool) pg_field_is_null($result, $i), | ||
| 135 | 'storage' => pg_field_size($result, $i).' bytes', | ||
| 136 | 'display' => pg_field_prtlen($result, $i).' chars', | ||
| 137 | ); | ||
| 138 | if (' (OID: )' === $field['table']) { | ||
| 139 | $field['table'] = null; | ||
| 140 | } | ||
| 141 | if ('-1 bytes' === $field['storage']) { | ||
| 142 | $field['storage'] = 'variable size'; | ||
| 143 | } elseif ('1 bytes' === $field['storage']) { | ||
| 144 | $field['storage'] = '1 byte'; | ||
| 145 | } | ||
| 146 | if ('1 chars' === $field['display']) { | ||
| 147 | $field['display'] = '1 char'; | ||
| 148 | } | ||
| 149 | $a['fields'][] = new EnumStub($field); | ||
| 150 | } | ||
| 151 | |||
| 152 | return $a; | ||
| 153 | } | ||
| 154 | } |
This diff is collapsed.
Click to expand it.
| 1 | <?php | ||
| 2 | |||
| 3 | /* | ||
| 4 | * This file is part of the Symfony package. | ||
| 5 | * | ||
| 6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
| 7 | * | ||
| 8 | * For the full copyright and license information, please view the LICENSE | ||
| 9 | * file that was distributed with this source code. | ||
| 10 | */ | ||
| 11 | |||
| 12 | namespace Symfony\Component\VarDumper\Caster; | ||
| 13 | |||
| 14 | use Symfony\Component\VarDumper\Cloner\Stub; | ||
| 15 | |||
| 16 | /** | ||
| 17 | * Casts common resource types to array representation. | ||
| 18 | * | ||
| 19 | * @author Nicolas Grekas <p@tchwork.com> | ||
| 20 | */ | ||
| 21 | class ResourceCaster | ||
| 22 | { | ||
| 23 | public static function castCurl($h, array $a, Stub $stub, $isNested) | ||
| 24 | { | ||
| 25 | return curl_getinfo($h); | ||
| 26 | } | ||
| 27 | |||
| 28 | public static function castDba($dba, array $a, Stub $stub, $isNested) | ||
| 29 | { | ||
| 30 | $list = dba_list(); | ||
| 31 | $a['file'] = $list[(int) $dba]; | ||
| 32 | |||
| 33 | return $a; | ||
| 34 | } | ||
| 35 | |||
| 36 | public static function castProcess($process, array $a, Stub $stub, $isNested) | ||
| 37 | { | ||
| 38 | return proc_get_status($process); | ||
| 39 | } | ||
| 40 | |||
| 41 | public static function castStream($stream, array $a, Stub $stub, $isNested) | ||
| 42 | { | ||
| 43 | return stream_get_meta_data($stream) + static::castStreamContext($stream, $a, $stub, $isNested); | ||
| 44 | } | ||
| 45 | |||
| 46 | public static function castStreamContext($stream, array $a, Stub $stub, $isNested) | ||
| 47 | { | ||
| 48 | return @stream_context_get_params($stream) ?: $a; | ||
| 49 | } | ||
| 50 | |||
| 51 | public static function castGd($gd, array $a, Stub $stub, $isNested) | ||
| 52 | { | ||
| 53 | $a['size'] = imagesx($gd).'x'.imagesy($gd); | ||
| 54 | $a['trueColor'] = imageistruecolor($gd); | ||
| 55 | |||
| 56 | return $a; | ||
| 57 | } | ||
| 58 | |||
| 59 | public static function castMysqlLink($h, array $a, Stub $stub, $isNested) | ||
| 60 | { | ||
| 61 | $a['host'] = mysql_get_host_info($h); | ||
| 62 | $a['protocol'] = mysql_get_proto_info($h); | ||
| 63 | $a['server'] = mysql_get_server_info($h); | ||
| 64 | |||
| 65 | return $a; | ||
| 66 | } | ||
| 67 | } |
| 1 | <?php | ||
| 2 | |||
| 3 | /* | ||
| 4 | * This file is part of the Symfony package. | ||
| 5 | * | ||
| 6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
| 7 | * | ||
| 8 | * For the full copyright and license information, please view the LICENSE | ||
| 9 | * file that was distributed with this source code. | ||
| 10 | */ | ||
| 11 | |||
| 12 | namespace Symfony\Component\VarDumper\Caster; | ||
| 13 | |||
| 14 | use Symfony\Component\VarDumper\Cloner\Stub; | ||
| 15 | |||
| 16 | /** | ||
| 17 | * Casts SPL related classes to array representation. | ||
| 18 | * | ||
| 19 | * @author Nicolas Grekas <p@tchwork.com> | ||
| 20 | */ | ||
| 21 | class SplCaster | ||
| 22 | { | ||
| 23 | private static $splFileObjectFlags = array( | ||
| 24 | \SplFileObject::DROP_NEW_LINE => 'DROP_NEW_LINE', | ||
| 25 | \SplFileObject::READ_AHEAD => 'READ_AHEAD', | ||
| 26 | \SplFileObject::SKIP_EMPTY => 'SKIP_EMPTY', | ||
| 27 | \SplFileObject::READ_CSV => 'READ_CSV', | ||
| 28 | ); | ||
| 29 | |||
| 30 | public static function castArrayObject(\ArrayObject $c, array $a, Stub $stub, $isNested) | ||
| 31 | { | ||
| 32 | return self::castSplArray($c, $a, $stub, $isNested); | ||
| 33 | } | ||
| 34 | |||
| 35 | public static function castArrayIterator(\ArrayIterator $c, array $a, Stub $stub, $isNested) | ||
| 36 | { | ||
| 37 | return self::castSplArray($c, $a, $stub, $isNested); | ||
| 38 | } | ||
| 39 | |||
| 40 | public static function castHeap(\Iterator $c, array $a, Stub $stub, $isNested) | ||
| 41 | { | ||
| 42 | $a += array( | ||
| 43 | Caster::PREFIX_VIRTUAL.'heap' => iterator_to_array(clone $c), | ||
| 44 | ); | ||
| 45 | |||
| 46 | return $a; | ||
| 47 | } | ||
| 48 | |||
| 49 | public static function castDoublyLinkedList(\SplDoublyLinkedList $c, array $a, Stub $stub, $isNested) | ||
| 50 | { | ||
| 51 | $prefix = Caster::PREFIX_VIRTUAL; | ||
| 52 | $mode = $c->getIteratorMode(); | ||
| 53 | $c->setIteratorMode(\SplDoublyLinkedList::IT_MODE_KEEP | $mode & ~\SplDoublyLinkedList::IT_MODE_DELETE); | ||
| 54 | |||
| 55 | $a += array( | ||
| 56 | $prefix.'mode' => new ConstStub((($mode & \SplDoublyLinkedList::IT_MODE_LIFO) ? 'IT_MODE_LIFO' : 'IT_MODE_FIFO').' | '.(($mode & \SplDoublyLinkedList::IT_MODE_DELETE) ? 'IT_MODE_DELETE' : 'IT_MODE_KEEP'), $mode), | ||
| 57 | $prefix.'dllist' => iterator_to_array($c), | ||
| 58 | ); | ||
| 59 | $c->setIteratorMode($mode); | ||
| 60 | |||
| 61 | return $a; | ||
| 62 | } | ||
| 63 | |||
| 64 | public static function castFileInfo(\SplFileInfo $c, array $a, Stub $stub, $isNested) | ||
| 65 | { | ||
| 66 | static $map = array( | ||
| 67 | 'path' => 'getPath', | ||
| 68 | 'filename' => 'getFilename', | ||
| 69 | 'basename' => 'getBasename', | ||
| 70 | 'pathname' => 'getPathname', | ||
| 71 | 'extension' => 'getExtension', | ||
| 72 | 'realPath' => 'getRealPath', | ||
| 73 | 'aTime' => 'getATime', | ||
| 74 | 'mTime' => 'getMTime', | ||
| 75 | 'cTime' => 'getCTime', | ||
| 76 | 'inode' => 'getInode', | ||
| 77 | 'size' => 'getSize', | ||
| 78 | 'perms' => 'getPerms', | ||
| 79 | 'owner' => 'getOwner', | ||
| 80 | 'group' => 'getGroup', | ||
| 81 | 'type' => 'getType', | ||
| 82 | 'writable' => 'isWritable', | ||
| 83 | 'readable' => 'isReadable', | ||
| 84 | 'executable' => 'isExecutable', | ||
| 85 | 'file' => 'isFile', | ||
| 86 | 'dir' => 'isDir', | ||
| 87 | 'link' => 'isLink', | ||
| 88 | 'linkTarget' => 'getLinkTarget', | ||
| 89 | ); | ||
| 90 | |||
| 91 | $prefix = Caster::PREFIX_VIRTUAL; | ||
| 92 | |||
| 93 | foreach ($map as $key => $accessor) { | ||
| 94 | try { | ||
| 95 | $a[$prefix.$key] = $c->$accessor(); | ||
| 96 | } catch (\Exception $e) { | ||
| 97 | } | ||
| 98 | } | ||
| 99 | |||
| 100 | if (isset($a[$prefix.'perms'])) { | ||
| 101 | $a[$prefix.'perms'] = new ConstStub(sprintf('0%o', $a[$prefix.'perms']), $a[$prefix.'perms']); | ||
| 102 | } | ||
| 103 | |||
| 104 | static $mapDate = array('aTime', 'mTime', 'cTime'); | ||
| 105 | foreach ($mapDate as $key) { | ||
| 106 | if (isset($a[$prefix.$key])) { | ||
| 107 | $a[$prefix.$key] = new ConstStub(date('Y-m-d H:i:s', $a[$prefix.$key]), $a[$prefix.$key]); | ||
| 108 | } | ||
| 109 | } | ||
| 110 | |||
| 111 | return $a; | ||
| 112 | } | ||
| 113 | |||
| 114 | public static function castFileObject(\SplFileObject $c, array $a, Stub $stub, $isNested) | ||
| 115 | { | ||
| 116 | static $map = array( | ||
| 117 | 'csvControl' => 'getCsvControl', | ||
| 118 | 'flags' => 'getFlags', | ||
| 119 | 'maxLineLen' => 'getMaxLineLen', | ||
| 120 | 'fstat' => 'fstat', | ||
| 121 | 'eof' => 'eof', | ||
| 122 | 'key' => 'key', | ||
| 123 | ); | ||
| 124 | |||
| 125 | $prefix = Caster::PREFIX_VIRTUAL; | ||
| 126 | |||
| 127 | foreach ($map as $key => $accessor) { | ||
| 128 | try { | ||
| 129 | $a[$prefix.$key] = $c->$accessor(); | ||
| 130 | } catch (\Exception $e) { | ||
| 131 | } | ||
| 132 | } | ||
| 133 | |||
| 134 | if (isset($a[$prefix.'flags'])) { | ||
| 135 | $flagsArray = array(); | ||
| 136 | foreach (self::$splFileObjectFlags as $value => $name) { | ||
| 137 | if ($a[$prefix.'flags'] & $value) { | ||
| 138 | $flagsArray[] = $name; | ||
| 139 | } | ||
| 140 | } | ||
| 141 | $a[$prefix.'flags'] = new ConstStub(implode('|', $flagsArray), $a[$prefix.'flags']); | ||
| 142 | } | ||
| 143 | |||
| 144 | if (isset($a[$prefix.'fstat'])) { | ||
| 145 | $a[$prefix.'fstat'] = new CutArrayStub($a[$prefix.'fstat'], array('dev', 'ino', 'nlink', 'rdev', 'blksize', 'blocks')); | ||
| 146 | } | ||
| 147 | |||
| 148 | return $a; | ||
| 149 | } | ||
| 150 | |||
| 151 | public static function castFixedArray(\SplFixedArray $c, array $a, Stub $stub, $isNested) | ||
| 152 | { | ||
| 153 | $a += array( | ||
| 154 | Caster::PREFIX_VIRTUAL.'storage' => $c->toArray(), | ||
| 155 | ); | ||
| 156 | |||
| 157 | return $a; | ||
| 158 | } | ||
| 159 | |||
| 160 | public static function castObjectStorage(\SplObjectStorage $c, array $a, Stub $stub, $isNested) | ||
| 161 | { | ||
| 162 | $storage = array(); | ||
| 163 | unset($a[Caster::PREFIX_DYNAMIC."\0gcdata"]); // Don't hit https://bugs.php.net/65967 | ||
| 164 | |||
| 165 | $clone = clone $c; | ||
| 166 | foreach ($clone as $obj) { | ||
| 167 | $storage[] = array( | ||
| 168 | 'object' => $obj, | ||
| 169 | 'info' => $clone->getInfo(), | ||
| 170 | ); | ||
| 171 | } | ||
| 172 | |||
| 173 | $a += array( | ||
| 174 | Caster::PREFIX_VIRTUAL.'storage' => $storage, | ||
| 175 | ); | ||
| 176 | |||
| 177 | return $a; | ||
| 178 | } | ||
| 179 | |||
| 180 | public static function castOuterIterator(\OuterIterator $c, array $a, Stub $stub, $isNested) | ||
| 181 | { | ||
| 182 | $a[Caster::PREFIX_VIRTUAL.'innerIterator'] = $c->getInnerIterator(); | ||
| 183 | |||
| 184 | return $a; | ||
| 185 | } | ||
| 186 | |||
| 187 | private static function castSplArray($c, array $a, Stub $stub, $isNested) | ||
| 188 | { | ||
| 189 | $prefix = Caster::PREFIX_VIRTUAL; | ||
| 190 | $class = $stub->class; | ||
| 191 | $flags = $c->getFlags(); | ||
| 192 | |||
| 193 | if (!($flags & \ArrayObject::STD_PROP_LIST)) { | ||
| 194 | $c->setFlags(\ArrayObject::STD_PROP_LIST); | ||
| 195 | $a = Caster::castObject($c, new \ReflectionClass($class)); | ||
| 196 | $c->setFlags($flags); | ||
| 197 | } | ||
| 198 | $a += array( | ||
| 199 | $prefix.'flag::STD_PROP_LIST' => (bool) ($flags & \ArrayObject::STD_PROP_LIST), | ||
| 200 | $prefix.'flag::ARRAY_AS_PROPS' => (bool) ($flags & \ArrayObject::ARRAY_AS_PROPS), | ||
| 201 | ); | ||
| 202 | if ($c instanceof \ArrayObject) { | ||
| 203 | $a[$prefix.'iteratorClass'] = $c->getIteratorClass(); | ||
| 204 | } | ||
| 205 | $a[$prefix.'storage'] = $c->getArrayCopy(); | ||
| 206 | |||
| 207 | return $a; | ||
| 208 | } | ||
| 209 | } |
| 1 | <?php | ||
| 2 | |||
| 3 | /* | ||
| 4 | * This file is part of the Symfony package. | ||
| 5 | * | ||
| 6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
| 7 | * | ||
| 8 | * For the full copyright and license information, please view the LICENSE | ||
| 9 | * file that was distributed with this source code. | ||
| 10 | */ | ||
| 11 | |||
| 12 | namespace Symfony\Component\VarDumper\Caster; | ||
| 13 | |||
| 14 | use Symfony\Component\VarDumper\Cloner\Stub; | ||
| 15 | |||
| 16 | /** | ||
| 17 | * Casts a caster's Stub. | ||
| 18 | * | ||
| 19 | * @author Nicolas Grekas <p@tchwork.com> | ||
| 20 | */ | ||
| 21 | class StubCaster | ||
| 22 | { | ||
| 23 | public static function castStub(Stub $c, array $a, Stub $stub, $isNested) | ||
| 24 | { | ||
| 25 | if ($isNested) { | ||
| 26 | $stub->type = $c->type; | ||
| 27 | $stub->class = $c->class; | ||
| 28 | $stub->value = $c->value; | ||
| 29 | $stub->handle = $c->handle; | ||
| 30 | $stub->cut = $c->cut; | ||
| 31 | |||
| 32 | $a = array(); | ||
| 33 | } | ||
| 34 | |||
| 35 | return $a; | ||
| 36 | } | ||
| 37 | |||
| 38 | public static function castCutArray(CutArrayStub $c, array $a, Stub $stub, $isNested) | ||
| 39 | { | ||
| 40 | return $isNested ? $c->preservedSubset : $a; | ||
| 41 | } | ||
| 42 | |||
| 43 | public static function cutInternals($obj, array $a, Stub $stub, $isNested) | ||
| 44 | { | ||
| 45 | if ($isNested) { | ||
| 46 | $stub->cut += \count($a); | ||
| 47 | |||
| 48 | return array(); | ||
| 49 | } | ||
| 50 | |||
| 51 | return $a; | ||
| 52 | } | ||
| 53 | |||
| 54 | public static function castEnum(EnumStub $c, array $a, Stub $stub, $isNested) | ||
| 55 | { | ||
| 56 | if ($isNested) { | ||
| 57 | $stub->class = ''; | ||
| 58 | $stub->handle = 0; | ||
| 59 | $stub->value = null; | ||
| 60 | |||
| 61 | $a = array(); | ||
| 62 | |||
| 63 | if ($c->value) { | ||
| 64 | foreach (array_keys($c->value) as $k) { | ||
| 65 | $keys[] = !isset($k[0]) || "\0" !== $k[0] ? Caster::PREFIX_VIRTUAL.$k : $k; | ||
| 66 | } | ||
| 67 | // Preserve references with array_combine() | ||
| 68 | $a = array_combine($keys, $c->value); | ||
| 69 | } | ||
| 70 | } | ||
| 71 | |||
| 72 | return $a; | ||
| 73 | } | ||
| 74 | } |
| 1 | <?php | ||
| 2 | |||
| 3 | /* | ||
| 4 | * This file is part of the Symfony package. | ||
| 5 | * | ||
| 6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
| 7 | * | ||
| 8 | * For the full copyright and license information, please view the LICENSE | ||
| 9 | * file that was distributed with this source code. | ||
| 10 | */ | ||
| 11 | |||
| 12 | namespace Symfony\Component\VarDumper\Caster; | ||
| 13 | |||
| 14 | use Symfony\Component\VarDumper\Cloner\Stub; | ||
| 15 | |||
| 16 | /** | ||
| 17 | * Represents a backtrace as returned by debug_backtrace() or Exception->getTrace(). | ||
| 18 | * | ||
| 19 | * @author Nicolas Grekas <p@tchwork.com> | ||
| 20 | */ | ||
| 21 | class TraceStub extends Stub | ||
| 22 | { | ||
| 23 | public $keepArgs; | ||
| 24 | public $sliceOffset; | ||
| 25 | public $sliceLength; | ||
| 26 | public $numberingOffset; | ||
| 27 | |||
| 28 | public function __construct(array $trace, $keepArgs = true, $sliceOffset = 0, $sliceLength = null, $numberingOffset = 0) | ||
| 29 | { | ||
| 30 | $this->value = $trace; | ||
| 31 | $this->keepArgs = $keepArgs; | ||
| 32 | $this->sliceOffset = $sliceOffset; | ||
| 33 | $this->sliceLength = $sliceLength; | ||
| 34 | $this->numberingOffset = $numberingOffset; | ||
| 35 | } | ||
| 36 | } |
| 1 | <?php | ||
| 2 | |||
| 3 | /* | ||
| 4 | * This file is part of the Symfony package. | ||
| 5 | * | ||
| 6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
| 7 | * | ||
| 8 | * For the full copyright and license information, please view the LICENSE | ||
| 9 | * file that was distributed with this source code. | ||
| 10 | */ | ||
| 11 | |||
| 12 | namespace Symfony\Component\VarDumper\Caster; | ||
| 13 | |||
| 14 | use Symfony\Component\VarDumper\Cloner\Stub; | ||
| 15 | |||
| 16 | /** | ||
| 17 | * Casts XML resources to array representation. | ||
| 18 | * | ||
| 19 | * @author Nicolas Grekas <p@tchwork.com> | ||
| 20 | */ | ||
| 21 | class XmlResourceCaster | ||
| 22 | { | ||
| 23 | private static $xmlErrors = array( | ||
| 24 | XML_ERROR_NONE => 'XML_ERROR_NONE', | ||
| 25 | XML_ERROR_NO_MEMORY => 'XML_ERROR_NO_MEMORY', | ||
| 26 | XML_ERROR_SYNTAX => 'XML_ERROR_SYNTAX', | ||
| 27 | XML_ERROR_NO_ELEMENTS => 'XML_ERROR_NO_ELEMENTS', | ||
| 28 | XML_ERROR_INVALID_TOKEN => 'XML_ERROR_INVALID_TOKEN', | ||
| 29 | XML_ERROR_UNCLOSED_TOKEN => 'XML_ERROR_UNCLOSED_TOKEN', | ||
| 30 | XML_ERROR_PARTIAL_CHAR => 'XML_ERROR_PARTIAL_CHAR', | ||
| 31 | XML_ERROR_TAG_MISMATCH => 'XML_ERROR_TAG_MISMATCH', | ||
| 32 | XML_ERROR_DUPLICATE_ATTRIBUTE => 'XML_ERROR_DUPLICATE_ATTRIBUTE', | ||
| 33 | XML_ERROR_JUNK_AFTER_DOC_ELEMENT => 'XML_ERROR_JUNK_AFTER_DOC_ELEMENT', | ||
| 34 | XML_ERROR_PARAM_ENTITY_REF => 'XML_ERROR_PARAM_ENTITY_REF', | ||
| 35 | XML_ERROR_UNDEFINED_ENTITY => 'XML_ERROR_UNDEFINED_ENTITY', | ||
| 36 | XML_ERROR_RECURSIVE_ENTITY_REF => 'XML_ERROR_RECURSIVE_ENTITY_REF', | ||
| 37 | XML_ERROR_ASYNC_ENTITY => 'XML_ERROR_ASYNC_ENTITY', | ||
| 38 | XML_ERROR_BAD_CHAR_REF => 'XML_ERROR_BAD_CHAR_REF', | ||
| 39 | XML_ERROR_BINARY_ENTITY_REF => 'XML_ERROR_BINARY_ENTITY_REF', | ||
| 40 | XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF => 'XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF', | ||
| 41 | XML_ERROR_MISPLACED_XML_PI => 'XML_ERROR_MISPLACED_XML_PI', | ||
| 42 | XML_ERROR_UNKNOWN_ENCODING => 'XML_ERROR_UNKNOWN_ENCODING', | ||
| 43 | XML_ERROR_INCORRECT_ENCODING => 'XML_ERROR_INCORRECT_ENCODING', | ||
| 44 | XML_ERROR_UNCLOSED_CDATA_SECTION => 'XML_ERROR_UNCLOSED_CDATA_SECTION', | ||
| 45 | XML_ERROR_EXTERNAL_ENTITY_HANDLING => 'XML_ERROR_EXTERNAL_ENTITY_HANDLING', | ||
| 46 | ); | ||
| 47 | |||
| 48 | public static function castXml($h, array $a, Stub $stub, $isNested) | ||
| 49 | { | ||
| 50 | $a['current_byte_index'] = xml_get_current_byte_index($h); | ||
| 51 | $a['current_column_number'] = xml_get_current_column_number($h); | ||
| 52 | $a['current_line_number'] = xml_get_current_line_number($h); | ||
| 53 | $a['error_code'] = xml_get_error_code($h); | ||
| 54 | |||
| 55 | if (isset(self::$xmlErrors[$a['error_code']])) { | ||
| 56 | $a['error_code'] = new ConstStub(self::$xmlErrors[$a['error_code']], $a['error_code']); | ||
| 57 | } | ||
| 58 | |||
| 59 | return $a; | ||
| 60 | } | ||
| 61 | } |
This diff is collapsed.
Click to expand it.
| 1 | <?php | ||
| 2 | |||
| 3 | /* | ||
| 4 | * This file is part of the Symfony package. | ||
| 5 | * | ||
| 6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
| 7 | * | ||
| 8 | * For the full copyright and license information, please view the LICENSE | ||
| 9 | * file that was distributed with this source code. | ||
| 10 | */ | ||
| 11 | |||
| 12 | namespace Symfony\Component\VarDumper\Cloner; | ||
| 13 | |||
| 14 | /** | ||
| 15 | * @author Nicolas Grekas <p@tchwork.com> | ||
| 16 | */ | ||
| 17 | interface ClonerInterface | ||
| 18 | { | ||
| 19 | /** | ||
| 20 | * Clones a PHP variable. | ||
| 21 | * | ||
| 22 | * @param mixed $var Any PHP variable | ||
| 23 | * | ||
| 24 | * @return Data The cloned variable represented by a Data object | ||
| 25 | */ | ||
| 26 | public function cloneVar($var); | ||
| 27 | } |
vendor/symfony/var-dumper/Cloner/Cursor.php
0 → 100644
| 1 | <?php | ||
| 2 | |||
| 3 | /* | ||
| 4 | * This file is part of the Symfony package. | ||
| 5 | * | ||
| 6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
| 7 | * | ||
| 8 | * For the full copyright and license information, please view the LICENSE | ||
| 9 | * file that was distributed with this source code. | ||
| 10 | */ | ||
| 11 | |||
| 12 | namespace Symfony\Component\VarDumper\Cloner; | ||
| 13 | |||
| 14 | /** | ||
| 15 | * Represents the current state of a dumper while dumping. | ||
| 16 | * | ||
| 17 | * @author Nicolas Grekas <p@tchwork.com> | ||
| 18 | */ | ||
| 19 | class Cursor | ||
| 20 | { | ||
| 21 | const HASH_INDEXED = Stub::ARRAY_INDEXED; | ||
| 22 | const HASH_ASSOC = Stub::ARRAY_ASSOC; | ||
| 23 | const HASH_OBJECT = Stub::TYPE_OBJECT; | ||
| 24 | const HASH_RESOURCE = Stub::TYPE_RESOURCE; | ||
| 25 | |||
| 26 | public $depth = 0; | ||
| 27 | public $refIndex = 0; | ||
| 28 | public $softRefTo = 0; | ||
| 29 | public $softRefCount = 0; | ||
| 30 | public $softRefHandle = 0; | ||
| 31 | public $hardRefTo = 0; | ||
| 32 | public $hardRefCount = 0; | ||
| 33 | public $hardRefHandle = 0; | ||
| 34 | public $hashType; | ||
| 35 | public $hashKey; | ||
| 36 | public $hashKeyIsBinary; | ||
| 37 | public $hashIndex = 0; | ||
| 38 | public $hashLength = 0; | ||
| 39 | public $hashCut = 0; | ||
| 40 | public $stop = false; | ||
| 41 | } |
vendor/symfony/var-dumper/Cloner/Data.php
0 → 100644
| 1 | <?php | ||
| 2 | |||
| 3 | /* | ||
| 4 | * This file is part of the Symfony package. | ||
| 5 | * | ||
| 6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
| 7 | * | ||
| 8 | * For the full copyright and license information, please view the LICENSE | ||
| 9 | * file that was distributed with this source code. | ||
| 10 | */ | ||
| 11 | |||
| 12 | namespace Symfony\Component\VarDumper\Cloner; | ||
| 13 | |||
| 14 | /** | ||
| 15 | * @author Nicolas Grekas <p@tchwork.com> | ||
| 16 | */ | ||
| 17 | class Data | ||
| 18 | { | ||
| 19 | private $data; | ||
| 20 | private $maxDepth = 20; | ||
| 21 | private $maxItemsPerDepth = -1; | ||
| 22 | private $useRefHandles = -1; | ||
| 23 | |||
| 24 | /** | ||
| 25 | * @param array $data An array as returned by ClonerInterface::cloneVar() | ||
| 26 | */ | ||
| 27 | public function __construct(array $data) | ||
| 28 | { | ||
| 29 | $this->data = $data; | ||
| 30 | } | ||
| 31 | |||
| 32 | /** | ||
| 33 | * @return array The raw data structure | ||
| 34 | */ | ||
| 35 | public function getRawData() | ||
| 36 | { | ||
| 37 | return $this->data; | ||
| 38 | } | ||
| 39 | |||
| 40 | /** | ||
| 41 | * Returns a depth limited clone of $this. | ||
| 42 | * | ||
| 43 | * @param int $maxDepth The max dumped depth level | ||
| 44 | * | ||
| 45 | * @return self A clone of $this | ||
| 46 | */ | ||
| 47 | public function withMaxDepth($maxDepth) | ||
| 48 | { | ||
| 49 | $data = clone $this; | ||
| 50 | $data->maxDepth = (int) $maxDepth; | ||
| 51 | |||
| 52 | return $data; | ||
| 53 | } | ||
| 54 | |||
| 55 | /** | ||
| 56 | * Limits the number of elements per depth level. | ||
| 57 | * | ||
| 58 | * @param int $maxItemsPerDepth The max number of items dumped per depth level | ||
| 59 | * | ||
| 60 | * @return self A clone of $this | ||
| 61 | */ | ||
| 62 | public function withMaxItemsPerDepth($maxItemsPerDepth) | ||
| 63 | { | ||
| 64 | $data = clone $this; | ||
| 65 | $data->maxItemsPerDepth = (int) $maxItemsPerDepth; | ||
| 66 | |||
| 67 | return $data; | ||
| 68 | } | ||
| 69 | |||
| 70 | /** | ||
| 71 | * Enables/disables objects' identifiers tracking. | ||
| 72 | * | ||
| 73 | * @param bool $useRefHandles False to hide global ref. handles | ||
| 74 | * | ||
| 75 | * @return self A clone of $this | ||
| 76 | */ | ||
| 77 | public function withRefHandles($useRefHandles) | ||
| 78 | { | ||
| 79 | $data = clone $this; | ||
| 80 | $data->useRefHandles = $useRefHandles ? -1 : 0; | ||
| 81 | |||
| 82 | return $data; | ||
| 83 | } | ||
| 84 | |||
| 85 | /** | ||
| 86 | * Returns a depth limited clone of $this. | ||
| 87 | * | ||
| 88 | * @param int $maxDepth The max dumped depth level | ||
| 89 | * @param int $maxItemsPerDepth The max number of items dumped per depth level | ||
| 90 | * @param bool $useRefHandles False to hide ref. handles | ||
| 91 | * | ||
| 92 | * @return self A depth limited clone of $this | ||
| 93 | * | ||
| 94 | * @deprecated since Symfony 2.7, to be removed in 3.0. Use withMaxDepth, withMaxItemsPerDepth or withRefHandles instead. | ||
| 95 | */ | ||
| 96 | public function getLimitedClone($maxDepth, $maxItemsPerDepth, $useRefHandles = true) | ||
| 97 | { | ||
| 98 | @trigger_error('The '.__METHOD__.' method is deprecated since Symfony 2.7 and will be removed in 3.0. Use withMaxDepth, withMaxItemsPerDepth or withRefHandles methods instead.', E_USER_DEPRECATED); | ||
| 99 | |||
| 100 | $data = clone $this; | ||
| 101 | $data->maxDepth = (int) $maxDepth; | ||
| 102 | $data->maxItemsPerDepth = (int) $maxItemsPerDepth; | ||
| 103 | $data->useRefHandles = $useRefHandles ? -1 : 0; | ||
| 104 | |||
| 105 | return $data; | ||
| 106 | } | ||
| 107 | |||
| 108 | /** | ||
| 109 | * Dumps data with a DumperInterface dumper. | ||
| 110 | */ | ||
| 111 | public function dump(DumperInterface $dumper) | ||
| 112 | { | ||
| 113 | $refs = array(0); | ||
| 114 | $this->dumpItem($dumper, new Cursor(), $refs, $this->data[0][0]); | ||
| 115 | } | ||
| 116 | |||
| 117 | /** | ||
| 118 | * Depth-first dumping of items. | ||
| 119 | * | ||
| 120 | * @param DumperInterface $dumper The dumper being used for dumping | ||
| 121 | * @param Cursor $cursor A cursor used for tracking dumper state position | ||
| 122 | * @param array &$refs A map of all references discovered while dumping | ||
| 123 | * @param mixed $item A Stub object or the original value being dumped | ||
| 124 | */ | ||
| 125 | private function dumpItem($dumper, $cursor, &$refs, $item) | ||
| 126 | { | ||
| 127 | $cursor->refIndex = 0; | ||
| 128 | $cursor->softRefTo = $cursor->softRefHandle = $cursor->softRefCount = 0; | ||
| 129 | $cursor->hardRefTo = $cursor->hardRefHandle = $cursor->hardRefCount = 0; | ||
| 130 | $firstSeen = true; | ||
| 131 | |||
| 132 | if (!$item instanceof Stub) { | ||
| 133 | $type = \gettype($item); | ||
| 134 | } elseif (Stub::TYPE_REF === $item->type) { | ||
| 135 | if ($item->handle) { | ||
| 136 | if (!isset($refs[$r = $item->handle - (PHP_INT_MAX >> 1)])) { | ||
| 137 | $cursor->refIndex = $refs[$r] = $cursor->refIndex ?: ++$refs[0]; | ||
| 138 | } else { | ||
| 139 | $firstSeen = false; | ||
| 140 | } | ||
| 141 | $cursor->hardRefTo = $refs[$r]; | ||
| 142 | $cursor->hardRefHandle = $this->useRefHandles & $item->handle; | ||
| 143 | $cursor->hardRefCount = $item->refCount; | ||
| 144 | } | ||
| 145 | $type = $item->class ?: \gettype($item->value); | ||
| 146 | $item = $item->value; | ||
| 147 | } | ||
| 148 | if ($item instanceof Stub) { | ||
| 149 | if ($item->refCount) { | ||
| 150 | if (!isset($refs[$r = $item->handle])) { | ||
| 151 | $cursor->refIndex = $refs[$r] = $cursor->refIndex ?: ++$refs[0]; | ||
| 152 | } else { | ||
| 153 | $firstSeen = false; | ||
| 154 | } | ||
| 155 | $cursor->softRefTo = $refs[$r]; | ||
| 156 | } | ||
| 157 | $cursor->softRefHandle = $this->useRefHandles & $item->handle; | ||
| 158 | $cursor->softRefCount = $item->refCount; | ||
| 159 | $cut = $item->cut; | ||
| 160 | |||
| 161 | if ($item->position && $firstSeen) { | ||
| 162 | $children = $this->data[$item->position]; | ||
| 163 | |||
| 164 | if ($cursor->stop) { | ||
| 165 | if ($cut >= 0) { | ||
| 166 | $cut += \count($children); | ||
| 167 | } | ||
| 168 | $children = array(); | ||
| 169 | } | ||
| 170 | } else { | ||
| 171 | $children = array(); | ||
| 172 | } | ||
| 173 | switch ($item->type) { | ||
| 174 | case Stub::TYPE_STRING: | ||
| 175 | $dumper->dumpString($cursor, $item->value, Stub::STRING_BINARY === $item->class, $cut); | ||
| 176 | break; | ||
| 177 | |||
| 178 | case Stub::TYPE_ARRAY: | ||
| 179 | $item = clone $item; | ||
| 180 | $item->type = $item->class; | ||
| 181 | $item->class = $item->value; | ||
| 182 | // no break | ||
| 183 | case Stub::TYPE_OBJECT: | ||
| 184 | case Stub::TYPE_RESOURCE: | ||
| 185 | $withChildren = $children && $cursor->depth !== $this->maxDepth && $this->maxItemsPerDepth; | ||
| 186 | $dumper->enterHash($cursor, $item->type, $item->class, $withChildren); | ||
| 187 | if ($withChildren) { | ||
| 188 | $cut = $this->dumpChildren($dumper, $cursor, $refs, $children, $cut, $item->type); | ||
| 189 | } elseif ($children && 0 <= $cut) { | ||
| 190 | $cut += \count($children); | ||
| 191 | } | ||
| 192 | $dumper->leaveHash($cursor, $item->type, $item->class, $withChildren, $cut); | ||
| 193 | break; | ||
| 194 | |||
| 195 | default: | ||
| 196 | throw new \RuntimeException(sprintf('Unexpected Stub type: %s', $item->type)); | ||
| 197 | } | ||
| 198 | } elseif ('array' === $type) { | ||
| 199 | $dumper->enterHash($cursor, Cursor::HASH_INDEXED, 0, false); | ||
| 200 | $dumper->leaveHash($cursor, Cursor::HASH_INDEXED, 0, false, 0); | ||
| 201 | } elseif ('string' === $type) { | ||
| 202 | $dumper->dumpString($cursor, $item, false, 0); | ||
| 203 | } else { | ||
| 204 | $dumper->dumpScalar($cursor, $type, $item); | ||
| 205 | } | ||
| 206 | } | ||
| 207 | |||
| 208 | /** | ||
| 209 | * Dumps children of hash structures. | ||
| 210 | * | ||
| 211 | * @param DumperInterface $dumper | ||
| 212 | * @param Cursor $parentCursor The cursor of the parent hash | ||
| 213 | * @param array &$refs A map of all references discovered while dumping | ||
| 214 | * @param array $children The children to dump | ||
| 215 | * @param int $hashCut The number of items removed from the original hash | ||
| 216 | * @param string $hashType A Cursor::HASH_* const | ||
| 217 | * | ||
| 218 | * @return int The final number of removed items | ||
| 219 | */ | ||
| 220 | private function dumpChildren($dumper, $parentCursor, &$refs, $children, $hashCut, $hashType) | ||
| 221 | { | ||
| 222 | $cursor = clone $parentCursor; | ||
| 223 | ++$cursor->depth; | ||
| 224 | $cursor->hashType = $hashType; | ||
| 225 | $cursor->hashIndex = 0; | ||
| 226 | $cursor->hashLength = \count($children); | ||
| 227 | $cursor->hashCut = $hashCut; | ||
| 228 | foreach ($children as $key => $child) { | ||
| 229 | $cursor->hashKeyIsBinary = isset($key[0]) && !preg_match('//u', $key); | ||
| 230 | $cursor->hashKey = $key; | ||
| 231 | $this->dumpItem($dumper, $cursor, $refs, $child); | ||
| 232 | if (++$cursor->hashIndex === $this->maxItemsPerDepth || $cursor->stop) { | ||
| 233 | $parentCursor->stop = true; | ||
| 234 | |||
| 235 | return $hashCut >= 0 ? $hashCut + $cursor->hashLength - $cursor->hashIndex : $hashCut; | ||
| 236 | } | ||
| 237 | } | ||
| 238 | |||
| 239 | return $hashCut; | ||
| 240 | } | ||
| 241 | } |
| 1 | <?php | ||
| 2 | |||
| 3 | /* | ||
| 4 | * This file is part of the Symfony package. | ||
| 5 | * | ||
| 6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
| 7 | * | ||
| 8 | * For the full copyright and license information, please view the LICENSE | ||
| 9 | * file that was distributed with this source code. | ||
| 10 | */ | ||
| 11 | |||
| 12 | namespace Symfony\Component\VarDumper\Cloner; | ||
| 13 | |||
| 14 | /** | ||
| 15 | * DumperInterface used by Data objects. | ||
| 16 | * | ||
| 17 | * @author Nicolas Grekas <p@tchwork.com> | ||
| 18 | */ | ||
| 19 | interface DumperInterface | ||
| 20 | { | ||
| 21 | /** | ||
| 22 | * Dumps a scalar value. | ||
| 23 | * | ||
| 24 | * @param Cursor $cursor The Cursor position in the dump | ||
| 25 | * @param string $type The PHP type of the value being dumped | ||
| 26 | * @param scalar $value The scalar value being dumped | ||
| 27 | */ | ||
| 28 | public function dumpScalar(Cursor $cursor, $type, $value); | ||
| 29 | |||
| 30 | /** | ||
| 31 | * Dumps a string. | ||
| 32 | * | ||
| 33 | * @param Cursor $cursor The Cursor position in the dump | ||
| 34 | * @param string $str The string being dumped | ||
| 35 | * @param bool $bin Whether $str is UTF-8 or binary encoded | ||
| 36 | * @param int $cut The number of characters $str has been cut by | ||
| 37 | */ | ||
| 38 | public function dumpString(Cursor $cursor, $str, $bin, $cut); | ||
| 39 | |||
| 40 | /** | ||
| 41 | * Dumps while entering an hash. | ||
| 42 | * | ||
| 43 | * @param Cursor $cursor The Cursor position in the dump | ||
| 44 | * @param int $type A Cursor::HASH_* const for the type of hash | ||
| 45 | * @param string $class The object class, resource type or array count | ||
| 46 | * @param bool $hasChild When the dump of the hash has child item | ||
| 47 | */ | ||
| 48 | public function enterHash(Cursor $cursor, $type, $class, $hasChild); | ||
| 49 | |||
| 50 | /** | ||
| 51 | * Dumps while leaving an hash. | ||
| 52 | * | ||
| 53 | * @param Cursor $cursor The Cursor position in the dump | ||
| 54 | * @param int $type A Cursor::HASH_* const for the type of hash | ||
| 55 | * @param string $class The object class, resource type or array count | ||
| 56 | * @param bool $hasChild When the dump of the hash has child item | ||
| 57 | * @param int $cut The number of items the hash has been cut by | ||
| 58 | */ | ||
| 59 | public function leaveHash(Cursor $cursor, $type, $class, $hasChild, $cut); | ||
| 60 | } |
vendor/symfony/var-dumper/Cloner/Stub.php
0 → 100644
| 1 | <?php | ||
| 2 | |||
| 3 | /* | ||
| 4 | * This file is part of the Symfony package. | ||
| 5 | * | ||
| 6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
| 7 | * | ||
| 8 | * For the full copyright and license information, please view the LICENSE | ||
| 9 | * file that was distributed with this source code. | ||
| 10 | */ | ||
| 11 | |||
| 12 | namespace Symfony\Component\VarDumper\Cloner; | ||
| 13 | |||
| 14 | /** | ||
| 15 | * Represents the main properties of a PHP variable. | ||
| 16 | * | ||
| 17 | * @author Nicolas Grekas <p@tchwork.com> | ||
| 18 | */ | ||
| 19 | class Stub | ||
| 20 | { | ||
| 21 | const TYPE_REF = 'ref'; | ||
| 22 | const TYPE_STRING = 'string'; | ||
| 23 | const TYPE_ARRAY = 'array'; | ||
| 24 | const TYPE_OBJECT = 'object'; | ||
| 25 | const TYPE_RESOURCE = 'resource'; | ||
| 26 | |||
| 27 | const STRING_BINARY = 'bin'; | ||
| 28 | const STRING_UTF8 = 'utf8'; | ||
| 29 | |||
| 30 | const ARRAY_ASSOC = 'assoc'; | ||
| 31 | const ARRAY_INDEXED = 'indexed'; | ||
| 32 | |||
| 33 | public $type = self::TYPE_REF; | ||
| 34 | public $class = ''; | ||
| 35 | public $value; | ||
| 36 | public $cut = 0; | ||
| 37 | public $handle = 0; | ||
| 38 | public $refCount = 0; | ||
| 39 | public $position = 0; | ||
| 40 | } |
This diff is collapsed.
Click to expand it.
| 1 | <?php | ||
| 2 | |||
| 3 | /* | ||
| 4 | * This file is part of the Symfony package. | ||
| 5 | * | ||
| 6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
| 7 | * | ||
| 8 | * For the full copyright and license information, please view the LICENSE | ||
| 9 | * file that was distributed with this source code. | ||
| 10 | */ | ||
| 11 | |||
| 12 | namespace Symfony\Component\VarDumper\Dumper; | ||
| 13 | |||
| 14 | use Symfony\Component\VarDumper\Cloner\Data; | ||
| 15 | use Symfony\Component\VarDumper\Cloner\DumperInterface; | ||
| 16 | |||
| 17 | /** | ||
| 18 | * Abstract mechanism for dumping a Data object. | ||
| 19 | * | ||
| 20 | * @author Nicolas Grekas <p@tchwork.com> | ||
| 21 | */ | ||
| 22 | abstract class AbstractDumper implements DataDumperInterface, DumperInterface | ||
| 23 | { | ||
| 24 | public static $defaultOutput = 'php://output'; | ||
| 25 | |||
| 26 | protected $line = ''; | ||
| 27 | protected $lineDumper; | ||
| 28 | protected $outputStream; | ||
| 29 | protected $decimalPoint; // This is locale dependent | ||
| 30 | protected $indentPad = ' '; | ||
| 31 | |||
| 32 | private $charset; | ||
| 33 | |||
| 34 | /** | ||
| 35 | * @param callable|resource|string|null $output A line dumper callable, an opened stream or an output path, defaults to static::$defaultOutput | ||
| 36 | * @param string $charset The default character encoding to use for non-UTF8 strings | ||
| 37 | */ | ||
| 38 | public function __construct($output = null, $charset = null) | ||
| 39 | { | ||
| 40 | $this->setCharset($charset ?: ini_get('php.output_encoding') ?: ini_get('default_charset') ?: 'UTF-8'); | ||
| 41 | $this->decimalPoint = localeconv(); | ||
| 42 | $this->decimalPoint = $this->decimalPoint['decimal_point']; | ||
| 43 | $this->setOutput($output ?: static::$defaultOutput); | ||
| 44 | if (!$output && \is_string(static::$defaultOutput)) { | ||
| 45 | static::$defaultOutput = $this->outputStream; | ||
| 46 | } | ||
| 47 | } | ||
| 48 | |||
| 49 | /** | ||
| 50 | * Sets the output destination of the dumps. | ||
| 51 | * | ||
| 52 | * @param callable|resource|string $output A line dumper callable, an opened stream or an output path | ||
| 53 | * | ||
| 54 | * @return callable|resource|string The previous output destination | ||
| 55 | */ | ||
| 56 | public function setOutput($output) | ||
| 57 | { | ||
| 58 | $prev = null !== $this->outputStream ? $this->outputStream : $this->lineDumper; | ||
| 59 | |||
| 60 | if (\is_callable($output)) { | ||
| 61 | $this->outputStream = null; | ||
| 62 | $this->lineDumper = $output; | ||
| 63 | } else { | ||
| 64 | if (\is_string($output)) { | ||
| 65 | $output = fopen($output, 'wb'); | ||
| 66 | } | ||
| 67 | $this->outputStream = $output; | ||
| 68 | $this->lineDumper = array($this, 'echoLine'); | ||
| 69 | } | ||
| 70 | |||
| 71 | return $prev; | ||
| 72 | } | ||
| 73 | |||
| 74 | /** | ||
| 75 | * Sets the default character encoding to use for non-UTF8 strings. | ||
| 76 | * | ||
| 77 | * @param string $charset The default character encoding to use for non-UTF8 strings | ||
| 78 | * | ||
| 79 | * @return string The previous charset | ||
| 80 | */ | ||
| 81 | public function setCharset($charset) | ||
| 82 | { | ||
| 83 | $prev = $this->charset; | ||
| 84 | |||
| 85 | $charset = strtoupper($charset); | ||
| 86 | $charset = null === $charset || 'UTF-8' === $charset || 'UTF8' === $charset ? 'CP1252' : $charset; | ||
| 87 | |||
| 88 | $this->charset = $charset; | ||
| 89 | |||
| 90 | return $prev; | ||
| 91 | } | ||
| 92 | |||
| 93 | /** | ||
| 94 | * Sets the indentation pad string. | ||
| 95 | * | ||
| 96 | * @param string $pad A string that will be prepended to dumped lines, repeated by nesting level | ||
| 97 | * | ||
| 98 | * @return string The previous indent pad | ||
| 99 | */ | ||
| 100 | public function setIndentPad($pad) | ||
| 101 | { | ||
| 102 | $prev = $this->indentPad; | ||
| 103 | $this->indentPad = $pad; | ||
| 104 | |||
| 105 | return $prev; | ||
| 106 | } | ||
| 107 | |||
| 108 | /** | ||
| 109 | * Dumps a Data object. | ||
| 110 | * | ||
| 111 | * @param Data $data A Data object | ||
| 112 | * @param callable|resource|string|null $output A line dumper callable, an opened stream or an output path | ||
| 113 | */ | ||
| 114 | public function dump(Data $data, $output = null) | ||
| 115 | { | ||
| 116 | $this->decimalPoint = localeconv(); | ||
| 117 | $this->decimalPoint = $this->decimalPoint['decimal_point']; | ||
| 118 | |||
| 119 | $exception = null; | ||
| 120 | if ($output) { | ||
| 121 | $prevOutput = $this->setOutput($output); | ||
| 122 | } | ||
| 123 | try { | ||
| 124 | $data->dump($this); | ||
| 125 | $this->dumpLine(-1); | ||
| 126 | } catch (\Exception $exception) { | ||
| 127 | // Re-thrown below | ||
| 128 | } catch (\Throwable $exception) { | ||
| 129 | // Re-thrown below | ||
| 130 | } | ||
| 131 | if ($output) { | ||
| 132 | $this->setOutput($prevOutput); | ||
| 133 | } | ||
| 134 | if (null !== $exception) { | ||
| 135 | throw $exception; | ||
| 136 | } | ||
| 137 | } | ||
| 138 | |||
| 139 | /** | ||
| 140 | * Dumps the current line. | ||
| 141 | * | ||
| 142 | * @param int $depth The recursive depth in the dumped structure for the line being dumped, | ||
| 143 | * or -1 to signal the end-of-dump to the line dumper callable | ||
| 144 | */ | ||
| 145 | protected function dumpLine($depth) | ||
| 146 | { | ||
| 147 | \call_user_func($this->lineDumper, $this->line, $depth, $this->indentPad); | ||
| 148 | $this->line = ''; | ||
| 149 | } | ||
| 150 | |||
| 151 | /** | ||
| 152 | * Generic line dumper callback. | ||
| 153 | * | ||
| 154 | * @param string $line The line to write | ||
| 155 | * @param int $depth The recursive depth in the dumped structure | ||
| 156 | * @param string $indentPad The line indent pad | ||
| 157 | */ | ||
| 158 | protected function echoLine($line, $depth, $indentPad) | ||
| 159 | { | ||
| 160 | if (-1 !== $depth) { | ||
| 161 | fwrite($this->outputStream, str_repeat($indentPad, $depth).$line."\n"); | ||
| 162 | } | ||
| 163 | } | ||
| 164 | |||
| 165 | /** | ||
| 166 | * Converts a non-UTF-8 string to UTF-8. | ||
| 167 | * | ||
| 168 | * @param string $s The non-UTF-8 string to convert | ||
| 169 | * | ||
| 170 | * @return string The string converted to UTF-8 | ||
| 171 | */ | ||
| 172 | protected function utf8Encode($s) | ||
| 173 | { | ||
| 174 | if (!\function_exists('iconv')) { | ||
| 175 | throw new \RuntimeException('Unable to convert a non-UTF-8 string to UTF-8: required function iconv() does not exist. You should install ext-iconv or symfony/polyfill-iconv.'); | ||
| 176 | } | ||
| 177 | if (false !== $c = @iconv($this->charset, 'UTF-8', $s)) { | ||
| 178 | return $c; | ||
| 179 | } | ||
| 180 | if ('CP1252' !== $this->charset && false !== $c = @iconv('CP1252', 'UTF-8', $s)) { | ||
| 181 | return $c; | ||
| 182 | } | ||
| 183 | |||
| 184 | return iconv('CP850', 'UTF-8', $s); | ||
| 185 | } | ||
| 186 | } |
This diff is collapsed.
Click to expand it.
| 1 | <?php | ||
| 2 | |||
| 3 | /* | ||
| 4 | * This file is part of the Symfony package. | ||
| 5 | * | ||
| 6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
| 7 | * | ||
| 8 | * For the full copyright and license information, please view the LICENSE | ||
| 9 | * file that was distributed with this source code. | ||
| 10 | */ | ||
| 11 | |||
| 12 | namespace Symfony\Component\VarDumper\Dumper; | ||
| 13 | |||
| 14 | use Symfony\Component\VarDumper\Cloner\Data; | ||
| 15 | |||
| 16 | /** | ||
| 17 | * DataDumperInterface for dumping Data objects. | ||
| 18 | * | ||
| 19 | * @author Nicolas Grekas <p@tchwork.com> | ||
| 20 | */ | ||
| 21 | interface DataDumperInterface | ||
| 22 | { | ||
| 23 | public function dump(Data $data); | ||
| 24 | } |
This diff is collapsed.
Click to expand it.
| 1 | <?php | ||
| 2 | |||
| 3 | /* | ||
| 4 | * This file is part of the Symfony package. | ||
| 5 | * | ||
| 6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
| 7 | * | ||
| 8 | * For the full copyright and license information, please view the LICENSE | ||
| 9 | * file that was distributed with this source code. | ||
| 10 | */ | ||
| 11 | |||
| 12 | namespace Symfony\Component\VarDumper\Exception; | ||
| 13 | |||
| 14 | /** | ||
| 15 | * @author Nicolas Grekas <p@tchwork.com> | ||
| 16 | */ | ||
| 17 | class ThrowingCasterException extends \Exception | ||
| 18 | { | ||
| 19 | /** | ||
| 20 | * @param \Exception $prev The exception thrown from the caster | ||
| 21 | */ | ||
| 22 | public function __construct($prev, \Exception $e = null) | ||
| 23 | { | ||
| 24 | if (!$prev instanceof \Exception) { | ||
| 25 | @trigger_error('Providing $caster as the first argument of the '.__METHOD__.' method is deprecated since Symfony 2.8 and will be removed in 3.0. Provide directly the $prev exception instead.', E_USER_DEPRECATED); | ||
| 26 | |||
| 27 | $prev = $e; | ||
| 28 | } | ||
| 29 | parent::__construct('Unexpected '.\get_class($prev).' thrown from a caster: '.$prev->getMessage(), 0, $prev); | ||
| 30 | } | ||
| 31 | } |
vendor/symfony/var-dumper/LICENSE
0 → 100644
| 1 | Copyright (c) 2014-2018 Fabien Potencier | ||
| 2 | |||
| 3 | Permission is hereby granted, free of charge, to any person obtaining a copy | ||
| 4 | of this software and associated documentation files (the "Software"), to deal | ||
| 5 | in the Software without restriction, including without limitation the rights | ||
| 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
| 7 | copies of the Software, and to permit persons to whom the Software is furnished | ||
| 8 | to do so, subject to the following conditions: | ||
| 9 | |||
| 10 | The above copyright notice and this permission notice shall be included in all | ||
| 11 | copies or substantial portions of the Software. | ||
| 12 | |||
| 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
| 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
| 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
| 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
| 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||
| 19 | THE SOFTWARE. |
vendor/symfony/var-dumper/README.md
0 → 100644
| 1 | VarDumper Component | ||
| 2 | =================== | ||
| 3 | |||
| 4 | The VarDumper component provides mechanisms for walking through any arbitrary | ||
| 5 | PHP variable. Built on top, it provides a better `dump()` function that you | ||
| 6 | can use instead of `var_dump`. | ||
| 7 | |||
| 8 | Resources | ||
| 9 | --------- | ||
| 10 | |||
| 11 | * [Documentation](https://symfony.com/doc/current/components/var_dumper/introduction.html) | ||
| 12 | * [Contributing](https://symfony.com/doc/current/contributing/index.html) | ||
| 13 | * [Report issues](https://github.com/symfony/symfony/issues) and | ||
| 14 | [send Pull Requests](https://github.com/symfony/symfony/pulls) | ||
| 15 | in the [main Symfony repository](https://github.com/symfony/symfony) |
| 1 | <?php | ||
| 2 | |||
| 3 | /* | ||
| 4 | * This file is part of the Symfony package. | ||
| 5 | * | ||
| 6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
| 7 | * | ||
| 8 | * For the full copyright and license information, please view the LICENSE | ||
| 9 | * file that was distributed with this source code. | ||
| 10 | */ | ||
| 11 | |||
| 12 | use Symfony\Component\VarDumper\VarDumper; | ||
| 13 | |||
| 14 | if (!function_exists('dump')) { | ||
| 15 | /** | ||
| 16 | * @author Nicolas Grekas <p@tchwork.com> | ||
| 17 | */ | ||
| 18 | function dump($var) | ||
| 19 | { | ||
| 20 | foreach (func_get_args() as $var) { | ||
| 21 | VarDumper::dump($var); | ||
| 22 | } | ||
| 23 | } | ||
| 24 | } |
| 1 | <?php | ||
| 2 | |||
| 3 | /* | ||
| 4 | * This file is part of the Symfony package. | ||
| 5 | * | ||
| 6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
| 7 | * | ||
| 8 | * For the full copyright and license information, please view the LICENSE | ||
| 9 | * file that was distributed with this source code. | ||
| 10 | */ | ||
| 11 | |||
| 12 | namespace Symfony\Component\VarDumper\Test; | ||
| 13 | |||
| 14 | use PHPUnit\Framework\TestCase; | ||
| 15 | use Symfony\Component\VarDumper\Cloner\VarCloner; | ||
| 16 | use Symfony\Component\VarDumper\Dumper\CliDumper; | ||
| 17 | |||
| 18 | /** | ||
| 19 | * @author Nicolas Grekas <p@tchwork.com> | ||
| 20 | * | ||
| 21 | * @deprecated since version 2.8, to be removed in 3.0. Use the VarDumperTestTrait instead. | ||
| 22 | */ | ||
| 23 | abstract class VarDumperTestCase extends TestCase | ||
| 24 | { | ||
| 25 | public function assertDumpEquals($dump, $data, $message = '') | ||
| 26 | { | ||
| 27 | $this->assertSame(rtrim($dump), $this->getDump($data), $message); | ||
| 28 | } | ||
| 29 | |||
| 30 | public function assertDumpMatchesFormat($dump, $data, $message = '') | ||
| 31 | { | ||
| 32 | $this->assertStringMatchesFormat(rtrim($dump), $this->getDump($data), $message); | ||
| 33 | } | ||
| 34 | |||
| 35 | protected function getDump($data) | ||
| 36 | { | ||
| 37 | $h = fopen('php://memory', 'r+b'); | ||
| 38 | $cloner = new VarCloner(); | ||
| 39 | $dumper = new CliDumper($h); | ||
| 40 | $dumper->setColors(false); | ||
| 41 | $dumper->dump($cloner->cloneVar($data)->withRefHandles(false)); | ||
| 42 | $data = stream_get_contents($h, -1, 0); | ||
| 43 | fclose($h); | ||
| 44 | |||
| 45 | return rtrim($data); | ||
| 46 | } | ||
| 47 | } |
| 1 | <?php | ||
| 2 | |||
| 3 | /* | ||
| 4 | * This file is part of the Symfony package. | ||
| 5 | * | ||
| 6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
| 7 | * | ||
| 8 | * For the full copyright and license information, please view the LICENSE | ||
| 9 | * file that was distributed with this source code. | ||
| 10 | */ | ||
| 11 | |||
| 12 | namespace Symfony\Component\VarDumper\Test; | ||
| 13 | |||
| 14 | use Symfony\Component\VarDumper\Cloner\VarCloner; | ||
| 15 | use Symfony\Component\VarDumper\Dumper\CliDumper; | ||
| 16 | |||
| 17 | /** | ||
| 18 | * @author Nicolas Grekas <p@tchwork.com> | ||
| 19 | */ | ||
| 20 | trait VarDumperTestTrait | ||
| 21 | { | ||
| 22 | public function assertDumpEquals($dump, $data, $message = '') | ||
| 23 | { | ||
| 24 | $this->assertSame(rtrim($dump), $this->getDump($data), $message); | ||
| 25 | } | ||
| 26 | |||
| 27 | public function assertDumpMatchesFormat($dump, $data, $message = '') | ||
| 28 | { | ||
| 29 | $this->assertStringMatchesFormat(rtrim($dump), $this->getDump($data), $message); | ||
| 30 | } | ||
| 31 | |||
| 32 | protected function getDump($data) | ||
| 33 | { | ||
| 34 | $h = fopen('php://memory', 'r+b'); | ||
| 35 | $cloner = new VarCloner(); | ||
| 36 | $cloner->setMaxItems(-1); | ||
| 37 | $dumper = new CliDumper($h); | ||
| 38 | $dumper->setColors(false); | ||
| 39 | $dumper->dump($cloner->cloneVar($data)->withRefHandles(false)); | ||
| 40 | $data = stream_get_contents($h, -1, 0); | ||
| 41 | fclose($h); | ||
| 42 | |||
| 43 | return rtrim($data); | ||
| 44 | } | ||
| 45 | } |
| 1 | <?php | ||
| 2 | |||
| 3 | /* | ||
| 4 | * This file is part of the Symfony package. | ||
| 5 | * | ||
| 6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
| 7 | * | ||
| 8 | * For the full copyright and license information, please view the LICENSE | ||
| 9 | * file that was distributed with this source code. | ||
| 10 | */ | ||
| 11 | |||
| 12 | namespace Symfony\Component\VarDumper\Tests\Caster; | ||
| 13 | |||
| 14 | use Symfony\Component\VarDumper\Caster\Caster; | ||
| 15 | use Symfony\Component\VarDumper\Test\VarDumperTestCase; | ||
| 16 | |||
| 17 | /** | ||
| 18 | * @author Nicolas Grekas <p@tchwork.com> | ||
| 19 | */ | ||
| 20 | class CasterTest extends VarDumperTestCase | ||
| 21 | { | ||
| 22 | private $referenceArray = array( | ||
| 23 | 'null' => null, | ||
| 24 | 'empty' => false, | ||
| 25 | 'public' => 'pub', | ||
| 26 | "\0~\0virtual" => 'virt', | ||
| 27 | "\0+\0dynamic" => 'dyn', | ||
| 28 | "\0*\0protected" => 'prot', | ||
| 29 | "\0Foo\0private" => 'priv', | ||
| 30 | ); | ||
| 31 | |||
| 32 | /** | ||
| 33 | * @dataProvider provideFilter | ||
| 34 | */ | ||
| 35 | public function testFilter($filter, $expectedDiff, $listedProperties = null) | ||
| 36 | { | ||
| 37 | if (null === $listedProperties) { | ||
| 38 | $filteredArray = Caster::filter($this->referenceArray, $filter); | ||
| 39 | } else { | ||
| 40 | $filteredArray = Caster::filter($this->referenceArray, $filter, $listedProperties); | ||
| 41 | } | ||
| 42 | |||
| 43 | $this->assertSame($expectedDiff, array_diff_assoc($this->referenceArray, $filteredArray)); | ||
| 44 | } | ||
| 45 | |||
| 46 | public function provideFilter() | ||
| 47 | { | ||
| 48 | return array( | ||
| 49 | array( | ||
| 50 | 0, | ||
| 51 | array(), | ||
| 52 | ), | ||
| 53 | array( | ||
| 54 | Caster::EXCLUDE_PUBLIC, | ||
| 55 | array( | ||
| 56 | 'null' => null, | ||
| 57 | 'empty' => false, | ||
| 58 | 'public' => 'pub', | ||
| 59 | ), | ||
| 60 | ), | ||
| 61 | array( | ||
| 62 | Caster::EXCLUDE_NULL, | ||
| 63 | array( | ||
| 64 | 'null' => null, | ||
| 65 | ), | ||
| 66 | ), | ||
| 67 | array( | ||
| 68 | Caster::EXCLUDE_EMPTY, | ||
| 69 | array( | ||
| 70 | 'null' => null, | ||
| 71 | 'empty' => false, | ||
| 72 | ), | ||
| 73 | ), | ||
| 74 | array( | ||
| 75 | Caster::EXCLUDE_VIRTUAL, | ||
| 76 | array( | ||
| 77 | "\0~\0virtual" => 'virt', | ||
| 78 | ), | ||
| 79 | ), | ||
| 80 | array( | ||
| 81 | Caster::EXCLUDE_DYNAMIC, | ||
| 82 | array( | ||
| 83 | "\0+\0dynamic" => 'dyn', | ||
| 84 | ), | ||
| 85 | ), | ||
| 86 | array( | ||
| 87 | Caster::EXCLUDE_PROTECTED, | ||
| 88 | array( | ||
| 89 | "\0*\0protected" => 'prot', | ||
| 90 | ), | ||
| 91 | ), | ||
| 92 | array( | ||
| 93 | Caster::EXCLUDE_PRIVATE, | ||
| 94 | array( | ||
| 95 | "\0Foo\0private" => 'priv', | ||
| 96 | ), | ||
| 97 | ), | ||
| 98 | array( | ||
| 99 | Caster::EXCLUDE_VERBOSE, | ||
| 100 | array( | ||
| 101 | 'public' => 'pub', | ||
| 102 | "\0*\0protected" => 'prot', | ||
| 103 | ), | ||
| 104 | array('public', "\0*\0protected"), | ||
| 105 | ), | ||
| 106 | array( | ||
| 107 | Caster::EXCLUDE_NOT_IMPORTANT, | ||
| 108 | array( | ||
| 109 | 'null' => null, | ||
| 110 | 'empty' => false, | ||
| 111 | "\0~\0virtual" => 'virt', | ||
| 112 | "\0+\0dynamic" => 'dyn', | ||
| 113 | "\0Foo\0private" => 'priv', | ||
| 114 | ), | ||
| 115 | array('public', "\0*\0protected"), | ||
| 116 | ), | ||
| 117 | array( | ||
| 118 | Caster::EXCLUDE_VIRTUAL | Caster::EXCLUDE_DYNAMIC, | ||
| 119 | array( | ||
| 120 | "\0~\0virtual" => 'virt', | ||
| 121 | "\0+\0dynamic" => 'dyn', | ||
| 122 | ), | ||
| 123 | ), | ||
| 124 | array( | ||
| 125 | Caster::EXCLUDE_NOT_IMPORTANT | Caster::EXCLUDE_VERBOSE, | ||
| 126 | $this->referenceArray, | ||
| 127 | array('public', "\0*\0protected"), | ||
| 128 | ), | ||
| 129 | array( | ||
| 130 | Caster::EXCLUDE_NOT_IMPORTANT | Caster::EXCLUDE_EMPTY, | ||
| 131 | array( | ||
| 132 | 'null' => null, | ||
| 133 | 'empty' => false, | ||
| 134 | "\0~\0virtual" => 'virt', | ||
| 135 | "\0+\0dynamic" => 'dyn', | ||
| 136 | "\0*\0protected" => 'prot', | ||
| 137 | "\0Foo\0private" => 'priv', | ||
| 138 | ), | ||
| 139 | array('public', 'empty'), | ||
| 140 | ), | ||
| 141 | array( | ||
| 142 | Caster::EXCLUDE_VERBOSE | Caster::EXCLUDE_EMPTY | Caster::EXCLUDE_STRICT, | ||
| 143 | array( | ||
| 144 | 'empty' => false, | ||
| 145 | ), | ||
| 146 | array('public', 'empty'), | ||
| 147 | ), | ||
| 148 | ); | ||
| 149 | } | ||
| 150 | |||
| 151 | /** | ||
| 152 | * @requires PHP 7.0 | ||
| 153 | */ | ||
| 154 | public function testAnonymousClass() | ||
| 155 | { | ||
| 156 | $c = eval('return new class extends stdClass { private $foo = "foo"; };'); | ||
| 157 | |||
| 158 | $this->assertDumpMatchesFormat( | ||
| 159 | <<<'EOTXT' | ||
| 160 | stdClass@anonymous { | ||
| 161 | -foo: "foo" | ||
| 162 | } | ||
| 163 | EOTXT | ||
| 164 | , $c | ||
| 165 | ); | ||
| 166 | |||
| 167 | $c = eval('return new class { private $foo = "foo"; };'); | ||
| 168 | |||
| 169 | $this->assertDumpMatchesFormat( | ||
| 170 | <<<'EOTXT' | ||
| 171 | @anonymous { | ||
| 172 | -foo: "foo" | ||
| 173 | } | ||
| 174 | EOTXT | ||
| 175 | , $c | ||
| 176 | ); | ||
| 177 | } | ||
| 178 | } |
| 1 | <?php | ||
| 2 | |||
| 3 | /* | ||
| 4 | * This file is part of the Symfony package. | ||
| 5 | * | ||
| 6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
| 7 | * | ||
| 8 | * For the full copyright and license information, please view the LICENSE | ||
| 9 | * file that was distributed with this source code. | ||
| 10 | */ | ||
| 11 | |||
| 12 | namespace Symfony\Component\VarDumper\Tests\Caster; | ||
| 13 | |||
| 14 | use Symfony\Component\VarDumper\Caster\FrameStub; | ||
| 15 | use Symfony\Component\VarDumper\Test\VarDumperTestCase; | ||
| 16 | |||
| 17 | class ExceptionCasterTest extends VarDumperTestCase | ||
| 18 | { | ||
| 19 | /** | ||
| 20 | * @requires function Twig\Template::getSourceContext | ||
| 21 | */ | ||
| 22 | public function testFrameWithTwig() | ||
| 23 | { | ||
| 24 | require_once \dirname(__DIR__).'/Fixtures/Twig.php'; | ||
| 25 | |||
| 26 | $f = array( | ||
| 27 | new FrameStub(array( | ||
| 28 | 'file' => \dirname(__DIR__).'/Fixtures/Twig.php', | ||
| 29 | 'line' => 21, | ||
| 30 | 'class' => '__TwigTemplate_VarDumperFixture_u75a09', | ||
| 31 | )), | ||
| 32 | new FrameStub(array( | ||
| 33 | 'file' => \dirname(__DIR__).'/Fixtures/Twig.php', | ||
| 34 | 'line' => 21, | ||
| 35 | 'class' => '__TwigTemplate_VarDumperFixture_u75a09', | ||
| 36 | 'object' => new \__TwigTemplate_VarDumperFixture_u75a09(null, false), | ||
| 37 | )), | ||
| 38 | ); | ||
| 39 | |||
| 40 | $expectedDump = <<<'EODUMP' | ||
| 41 | array:2 [ | ||
| 42 | 0 => { | ||
| 43 | class: "__TwigTemplate_VarDumperFixture_u75a09" | ||
| 44 | src: { | ||
| 45 | %sTwig.php:21: """ | ||
| 46 | // line 2\n | ||
| 47 | throw new \Exception('Foobar');\n | ||
| 48 | }\n | ||
| 49 | """ | ||
| 50 | bar.twig:2: """ | ||
| 51 | foo bar\n | ||
| 52 | twig source\n | ||
| 53 | \n | ||
| 54 | """ | ||
| 55 | } | ||
| 56 | } | ||
| 57 | 1 => { | ||
| 58 | class: "__TwigTemplate_VarDumperFixture_u75a09" | ||
| 59 | object: __TwigTemplate_VarDumperFixture_u75a09 { | ||
| 60 | %A | ||
| 61 | } | ||
| 62 | src: { | ||
| 63 | %sTwig.php:21: """ | ||
| 64 | // line 2\n | ||
| 65 | throw new \Exception('Foobar');\n | ||
| 66 | }\n | ||
| 67 | """ | ||
| 68 | foo.twig:2: """ | ||
| 69 | foo bar\n | ||
| 70 | twig source\n | ||
| 71 | \n | ||
| 72 | """ | ||
| 73 | } | ||
| 74 | } | ||
| 75 | ] | ||
| 76 | |||
| 77 | EODUMP; | ||
| 78 | |||
| 79 | $this->assertDumpMatchesFormat($expectedDump, $f); | ||
| 80 | } | ||
| 81 | } |
| 1 | <?php | ||
| 2 | |||
| 3 | /* | ||
| 4 | * This file is part of the Symfony package. | ||
| 5 | * | ||
| 6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
| 7 | * | ||
| 8 | * For the full copyright and license information, please view the LICENSE | ||
| 9 | * file that was distributed with this source code. | ||
| 10 | */ | ||
| 11 | |||
| 12 | namespace Symfony\Component\VarDumper\Tests\Caster; | ||
| 13 | |||
| 14 | use PHPUnit\Framework\TestCase; | ||
| 15 | use Symfony\Component\VarDumper\Caster\PdoCaster; | ||
| 16 | use Symfony\Component\VarDumper\Cloner\Stub; | ||
| 17 | |||
| 18 | /** | ||
| 19 | * @author Nicolas Grekas <p@tchwork.com> | ||
| 20 | */ | ||
| 21 | class PdoCasterTest extends TestCase | ||
| 22 | { | ||
| 23 | /** | ||
| 24 | * @requires extension pdo_sqlite | ||
| 25 | */ | ||
| 26 | public function testCastPdo() | ||
| 27 | { | ||
| 28 | $pdo = new \PDO('sqlite::memory:'); | ||
| 29 | $pdo->setAttribute(\PDO::ATTR_STATEMENT_CLASS, array('PDOStatement', array($pdo))); | ||
| 30 | |||
| 31 | $cast = PdoCaster::castPdo($pdo, array(), new Stub(), false); | ||
| 32 | |||
| 33 | $this->assertInstanceOf('Symfony\Component\VarDumper\Caster\EnumStub', $cast["\0~\0attributes"]); | ||
| 34 | |||
| 35 | $attr = $cast["\0~\0attributes"] = $cast["\0~\0attributes"]->value; | ||
| 36 | $this->assertInstanceOf('Symfony\Component\VarDumper\Caster\ConstStub', $attr['CASE']); | ||
| 37 | $this->assertSame('NATURAL', $attr['CASE']->class); | ||
| 38 | $this->assertSame('BOTH', $attr['DEFAULT_FETCH_MODE']->class); | ||
| 39 | |||
| 40 | $xCast = array( | ||
| 41 | "\0~\0inTransaction" => $pdo->inTransaction(), | ||
| 42 | "\0~\0attributes" => array( | ||
| 43 | 'CASE' => $attr['CASE'], | ||
| 44 | 'ERRMODE' => $attr['ERRMODE'], | ||
| 45 | 'PERSISTENT' => false, | ||
| 46 | 'DRIVER_NAME' => 'sqlite', | ||
| 47 | 'ORACLE_NULLS' => $attr['ORACLE_NULLS'], | ||
| 48 | 'CLIENT_VERSION' => $pdo->getAttribute(\PDO::ATTR_CLIENT_VERSION), | ||
| 49 | 'SERVER_VERSION' => $pdo->getAttribute(\PDO::ATTR_SERVER_VERSION), | ||
| 50 | 'STATEMENT_CLASS' => array('PDOStatement'), | ||
| 51 | 'DEFAULT_FETCH_MODE' => $attr['DEFAULT_FETCH_MODE'], | ||
| 52 | ), | ||
| 53 | ); | ||
| 54 | unset($cast["\0~\0attributes"]['STATEMENT_CLASS'][1]); | ||
| 55 | |||
| 56 | $this->assertSame($xCast, $cast); | ||
| 57 | } | ||
| 58 | } |
| 1 | <?php | ||
| 2 | |||
| 3 | /* | ||
| 4 | * This file is part of the Symfony package. | ||
| 5 | * | ||
| 6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
| 7 | * | ||
| 8 | * For the full copyright and license information, please view the LICENSE | ||
| 9 | * file that was distributed with this source code. | ||
| 10 | */ | ||
| 11 | |||
| 12 | namespace Symfony\Component\VarDumper\Tests\Caster; | ||
| 13 | |||
| 14 | use Symfony\Component\VarDumper\Test\VarDumperTestCase; | ||
| 15 | use Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo; | ||
| 16 | use Symfony\Component\VarDumper\Tests\Fixtures\NotLoadableClass; | ||
| 17 | |||
| 18 | /** | ||
| 19 | * @author Nicolas Grekas <p@tchwork.com> | ||
| 20 | */ | ||
| 21 | class ReflectionCasterTest extends VarDumperTestCase | ||
| 22 | { | ||
| 23 | public function testReflectionCaster() | ||
| 24 | { | ||
| 25 | $var = new \ReflectionClass('ReflectionClass'); | ||
| 26 | |||
| 27 | $this->assertDumpMatchesFormat( | ||
| 28 | <<<'EOTXT' | ||
| 29 | ReflectionClass { | ||
| 30 | +name: "ReflectionClass" | ||
| 31 | %Aimplements: array:%d [ | ||
| 32 | 0 => "Reflector" | ||
| 33 | %A] | ||
| 34 | constants: array:3 [ | ||
| 35 | "IS_IMPLICIT_ABSTRACT" => 16 | ||
| 36 | "IS_EXPLICIT_ABSTRACT" => 32 | ||
| 37 | "IS_FINAL" => %d | ||
| 38 | ] | ||
| 39 | properties: array:%d [ | ||
| 40 | "name" => ReflectionProperty { | ||
| 41 | %A +name: "name" | ||
| 42 | +class: "ReflectionClass" | ||
| 43 | %A modifiers: "public" | ||
| 44 | } | ||
| 45 | %A] | ||
| 46 | methods: array:%d [ | ||
| 47 | %A | ||
| 48 | "export" => ReflectionMethod { | ||
| 49 | +name: "export" | ||
| 50 | +class: "ReflectionClass" | ||
| 51 | %A parameters: { | ||
| 52 | $%s: ReflectionParameter { | ||
| 53 | %A position: 0 | ||
| 54 | %A | ||
| 55 | } | ||
| 56 | EOTXT | ||
| 57 | , $var | ||
| 58 | ); | ||
| 59 | } | ||
| 60 | |||
| 61 | public function testClosureCaster() | ||
| 62 | { | ||
| 63 | $a = $b = 123; | ||
| 64 | $var = function ($x) use ($a, &$b) {}; | ||
| 65 | |||
| 66 | $this->assertDumpMatchesFormat( | ||
| 67 | <<<EOTXT | ||
| 68 | Closure { | ||
| 69 | %Aparameters: { | ||
| 70 | \$x: {} | ||
| 71 | } | ||
| 72 | use: { | ||
| 73 | \$a: 123 | ||
| 74 | \$b: & 123 | ||
| 75 | } | ||
| 76 | file: "%sReflectionCasterTest.php" | ||
| 77 | line: "64 to 64" | ||
| 78 | } | ||
| 79 | EOTXT | ||
| 80 | , $var | ||
| 81 | ); | ||
| 82 | } | ||
| 83 | |||
| 84 | public function testReflectionParameter() | ||
| 85 | { | ||
| 86 | $var = new \ReflectionParameter(__NAMESPACE__.'\reflectionParameterFixture', 0); | ||
| 87 | |||
| 88 | $this->assertDumpMatchesFormat( | ||
| 89 | <<<'EOTXT' | ||
| 90 | ReflectionParameter { | ||
| 91 | +name: "arg1" | ||
| 92 | position: 0 | ||
| 93 | typeHint: "Symfony\Component\VarDumper\Tests\Fixtures\NotLoadableClass" | ||
| 94 | default: null | ||
| 95 | } | ||
| 96 | EOTXT | ||
| 97 | , $var | ||
| 98 | ); | ||
| 99 | } | ||
| 100 | |||
| 101 | /** | ||
| 102 | * @requires PHP 7.0 | ||
| 103 | */ | ||
| 104 | public function testReflectionParameterScalar() | ||
| 105 | { | ||
| 106 | $f = eval('return function (int $a) {};'); | ||
| 107 | $var = new \ReflectionParameter($f, 0); | ||
| 108 | |||
| 109 | $this->assertDumpMatchesFormat( | ||
| 110 | <<<'EOTXT' | ||
| 111 | ReflectionParameter { | ||
| 112 | +name: "a" | ||
| 113 | position: 0 | ||
| 114 | typeHint: "int" | ||
| 115 | } | ||
| 116 | EOTXT | ||
| 117 | , $var | ||
| 118 | ); | ||
| 119 | } | ||
| 120 | |||
| 121 | /** | ||
| 122 | * @requires PHP 7.0 | ||
| 123 | */ | ||
| 124 | public function testReturnType() | ||
| 125 | { | ||
| 126 | $f = eval('return function ():int {};'); | ||
| 127 | $line = __LINE__ - 1; | ||
| 128 | |||
| 129 | $this->assertDumpMatchesFormat( | ||
| 130 | <<<EOTXT | ||
| 131 | Closure { | ||
| 132 | returnType: "int" | ||
| 133 | class: "Symfony\Component\VarDumper\Tests\Caster\ReflectionCasterTest" | ||
| 134 | this: Symfony\Component\VarDumper\Tests\Caster\ReflectionCasterTest { …} | ||
| 135 | file: "%sReflectionCasterTest.php($line) : eval()'d code" | ||
| 136 | line: "1 to 1" | ||
| 137 | } | ||
| 138 | EOTXT | ||
| 139 | , $f | ||
| 140 | ); | ||
| 141 | } | ||
| 142 | |||
| 143 | /** | ||
| 144 | * @requires PHP 7.0 | ||
| 145 | */ | ||
| 146 | public function testGenerator() | ||
| 147 | { | ||
| 148 | if (\extension_loaded('xdebug')) { | ||
| 149 | $this->markTestSkipped('xdebug is active'); | ||
| 150 | } | ||
| 151 | |||
| 152 | $generator = new GeneratorDemo(); | ||
| 153 | $generator = $generator->baz(); | ||
| 154 | |||
| 155 | $expectedDump = <<<'EODUMP' | ||
| 156 | Generator { | ||
| 157 | this: Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo { …} | ||
| 158 | executing: { | ||
| 159 | Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo->baz(): { | ||
| 160 | %sGeneratorDemo.php:14: """ | ||
| 161 | {\n | ||
| 162 | yield from bar();\n | ||
| 163 | }\n | ||
| 164 | """ | ||
| 165 | } | ||
| 166 | } | ||
| 167 | closed: false | ||
| 168 | } | ||
| 169 | EODUMP; | ||
| 170 | |||
| 171 | $this->assertDumpMatchesFormat($expectedDump, $generator); | ||
| 172 | |||
| 173 | foreach ($generator as $v) { | ||
| 174 | break; | ||
| 175 | } | ||
| 176 | |||
| 177 | $expectedDump = <<<'EODUMP' | ||
| 178 | array:2 [ | ||
| 179 | 0 => ReflectionGenerator { | ||
| 180 | this: Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo { …} | ||
| 181 | trace: { | ||
| 182 | 3. Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo::foo() ==> yield(): { | ||
| 183 | src: { | ||
| 184 | %sGeneratorDemo.php:9: """ | ||
| 185 | {\n | ||
| 186 | yield 1;\n | ||
| 187 | }\n | ||
| 188 | """ | ||
| 189 | } | ||
| 190 | } | ||
| 191 | 2. Symfony\Component\VarDumper\Tests\Fixtures\bar() ==> Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo::foo(): { | ||
| 192 | src: { | ||
| 193 | %sGeneratorDemo.php:20: """ | ||
| 194 | {\n | ||
| 195 | yield from GeneratorDemo::foo();\n | ||
| 196 | }\n | ||
| 197 | """ | ||
| 198 | } | ||
| 199 | } | ||
| 200 | 1. Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo->baz() ==> Symfony\Component\VarDumper\Tests\Fixtures\bar(): { | ||
| 201 | src: { | ||
| 202 | %sGeneratorDemo.php:14: """ | ||
| 203 | {\n | ||
| 204 | yield from bar();\n | ||
| 205 | }\n | ||
| 206 | """ | ||
| 207 | } | ||
| 208 | } | ||
| 209 | } | ||
| 210 | closed: false | ||
| 211 | } | ||
| 212 | 1 => Generator { | ||
| 213 | executing: { | ||
| 214 | Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo::foo(): { | ||
| 215 | %sGeneratorDemo.php:10: """ | ||
| 216 | yield 1;\n | ||
| 217 | }\n | ||
| 218 | \n | ||
| 219 | """ | ||
| 220 | } | ||
| 221 | } | ||
| 222 | closed: false | ||
| 223 | } | ||
| 224 | ] | ||
| 225 | EODUMP; | ||
| 226 | |||
| 227 | $r = new \ReflectionGenerator($generator); | ||
| 228 | $this->assertDumpMatchesFormat($expectedDump, array($r, $r->getExecutingGenerator())); | ||
| 229 | |||
| 230 | foreach ($generator as $v) { | ||
| 231 | } | ||
| 232 | |||
| 233 | $expectedDump = <<<'EODUMP' | ||
| 234 | Generator { | ||
| 235 | closed: true | ||
| 236 | } | ||
| 237 | EODUMP; | ||
| 238 | $this->assertDumpMatchesFormat($expectedDump, $generator); | ||
| 239 | } | ||
| 240 | } | ||
| 241 | |||
| 242 | function reflectionParameterFixture(NotLoadableClass $arg1 = null, $arg2) | ||
| 243 | { | ||
| 244 | } |
| 1 | <?php | ||
| 2 | |||
| 3 | /* | ||
| 4 | * This file is part of the Symfony package. | ||
| 5 | * | ||
| 6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
| 7 | * | ||
| 8 | * For the full copyright and license information, please view the LICENSE | ||
| 9 | * file that was distributed with this source code. | ||
| 10 | */ | ||
| 11 | |||
| 12 | namespace Symfony\Component\VarDumper\Tests\Caster; | ||
| 13 | |||
| 14 | use Symfony\Component\VarDumper\Test\VarDumperTestCase; | ||
| 15 | |||
| 16 | /** | ||
| 17 | * @author Grégoire Pineau <lyrixx@lyrixx.info> | ||
| 18 | */ | ||
| 19 | class SplCasterTest extends VarDumperTestCase | ||
| 20 | { | ||
| 21 | public function getCastFileInfoTests() | ||
| 22 | { | ||
| 23 | return array( | ||
| 24 | array(__FILE__, <<<'EOTXT' | ||
| 25 | SplFileInfo { | ||
| 26 | %Apath: "%sCaster" | ||
| 27 | filename: "SplCasterTest.php" | ||
| 28 | basename: "SplCasterTest.php" | ||
| 29 | pathname: "%sSplCasterTest.php" | ||
| 30 | extension: "php" | ||
| 31 | realPath: "%sSplCasterTest.php" | ||
| 32 | aTime: %s-%s-%d %d:%d:%d | ||
| 33 | mTime: %s-%s-%d %d:%d:%d | ||
| 34 | cTime: %s-%s-%d %d:%d:%d | ||
| 35 | inode: %d | ||
| 36 | size: %d | ||
| 37 | perms: 0%d | ||
| 38 | owner: %d | ||
| 39 | group: %d | ||
| 40 | type: "file" | ||
| 41 | writable: true | ||
| 42 | readable: true | ||
| 43 | executable: false | ||
| 44 | file: true | ||
| 45 | dir: false | ||
| 46 | link: false | ||
| 47 | %A} | ||
| 48 | EOTXT | ||
| 49 | ), | ||
| 50 | array('https://google.com/about', <<<'EOTXT' | ||
| 51 | SplFileInfo { | ||
| 52 | %Apath: "https://google.com" | ||
| 53 | filename: "about" | ||
| 54 | basename: "about" | ||
| 55 | pathname: "https://google.com/about" | ||
| 56 | extension: "" | ||
| 57 | realPath: false | ||
| 58 | %A} | ||
| 59 | EOTXT | ||
| 60 | ), | ||
| 61 | ); | ||
| 62 | } | ||
| 63 | |||
| 64 | /** @dataProvider getCastFileInfoTests */ | ||
| 65 | public function testCastFileInfo($file, $dump) | ||
| 66 | { | ||
| 67 | $this->assertDumpMatchesFormat($dump, new \SplFileInfo($file)); | ||
| 68 | } | ||
| 69 | |||
| 70 | public function testCastFileObject() | ||
| 71 | { | ||
| 72 | $var = new \SplFileObject(__FILE__); | ||
| 73 | $var->setFlags(\SplFileObject::DROP_NEW_LINE | \SplFileObject::SKIP_EMPTY); | ||
| 74 | $dump = <<<'EOTXT' | ||
| 75 | SplFileObject { | ||
| 76 | %Apath: "%sCaster" | ||
| 77 | filename: "SplCasterTest.php" | ||
| 78 | basename: "SplCasterTest.php" | ||
| 79 | pathname: "%sSplCasterTest.php" | ||
| 80 | extension: "php" | ||
| 81 | realPath: "%sSplCasterTest.php" | ||
| 82 | aTime: %s-%s-%d %d:%d:%d | ||
| 83 | mTime: %s-%s-%d %d:%d:%d | ||
| 84 | cTime: %s-%s-%d %d:%d:%d | ||
| 85 | inode: %d | ||
| 86 | size: %d | ||
| 87 | perms: 0%d | ||
| 88 | owner: %d | ||
| 89 | group: %d | ||
| 90 | type: "file" | ||
| 91 | writable: true | ||
| 92 | readable: true | ||
| 93 | executable: false | ||
| 94 | file: true | ||
| 95 | dir: false | ||
| 96 | link: false | ||
| 97 | %AcsvControl: array:%d [ | ||
| 98 | 0 => "," | ||
| 99 | 1 => """ | ||
| 100 | %A] | ||
| 101 | flags: DROP_NEW_LINE|SKIP_EMPTY | ||
| 102 | maxLineLen: 0 | ||
| 103 | fstat: array:26 [ | ||
| 104 | "dev" => %d | ||
| 105 | "ino" => %d | ||
| 106 | "nlink" => %d | ||
| 107 | "rdev" => 0 | ||
| 108 | "blksize" => %i | ||
| 109 | "blocks" => %i | ||
| 110 | …20 | ||
| 111 | ] | ||
| 112 | eof: false | ||
| 113 | key: 0 | ||
| 114 | } | ||
| 115 | EOTXT; | ||
| 116 | $this->assertDumpMatchesFormat($dump, $var); | ||
| 117 | } | ||
| 118 | |||
| 119 | /** | ||
| 120 | * @dataProvider provideCastSplDoublyLinkedList | ||
| 121 | */ | ||
| 122 | public function testCastSplDoublyLinkedList($modeValue, $modeDump) | ||
| 123 | { | ||
| 124 | $var = new \SplDoublyLinkedList(); | ||
| 125 | $var->setIteratorMode($modeValue); | ||
| 126 | $dump = <<<EOTXT | ||
| 127 | SplDoublyLinkedList { | ||
| 128 | %Amode: $modeDump | ||
| 129 | dllist: [] | ||
| 130 | } | ||
| 131 | EOTXT; | ||
| 132 | $this->assertDumpMatchesFormat($dump, $var); | ||
| 133 | } | ||
| 134 | |||
| 135 | public function provideCastSplDoublyLinkedList() | ||
| 136 | { | ||
| 137 | return array( | ||
| 138 | array(\SplDoublyLinkedList::IT_MODE_FIFO, 'IT_MODE_FIFO | IT_MODE_KEEP'), | ||
| 139 | array(\SplDoublyLinkedList::IT_MODE_LIFO, 'IT_MODE_LIFO | IT_MODE_KEEP'), | ||
| 140 | array(\SplDoublyLinkedList::IT_MODE_FIFO | \SplDoublyLinkedList::IT_MODE_DELETE, 'IT_MODE_FIFO | IT_MODE_DELETE'), | ||
| 141 | array(\SplDoublyLinkedList::IT_MODE_LIFO | \SplDoublyLinkedList::IT_MODE_DELETE, 'IT_MODE_LIFO | IT_MODE_DELETE'), | ||
| 142 | ); | ||
| 143 | } | ||
| 144 | |||
| 145 | public function testCastObjectStorageIsntModified() | ||
| 146 | { | ||
| 147 | $var = new \SplObjectStorage(); | ||
| 148 | $var->attach(new \stdClass()); | ||
| 149 | $var->rewind(); | ||
| 150 | $current = $var->current(); | ||
| 151 | |||
| 152 | $this->assertDumpMatchesFormat('%A', $var); | ||
| 153 | $this->assertSame($current, $var->current()); | ||
| 154 | } | ||
| 155 | |||
| 156 | public function testCastObjectStorageDumpsInfo() | ||
| 157 | { | ||
| 158 | $var = new \SplObjectStorage(); | ||
| 159 | $var->attach(new \stdClass(), new \DateTime()); | ||
| 160 | |||
| 161 | $this->assertDumpMatchesFormat('%ADateTime%A', $var); | ||
| 162 | } | ||
| 163 | |||
| 164 | public function testCastArrayObject() | ||
| 165 | { | ||
| 166 | if (\defined('HHVM_VERSION')) { | ||
| 167 | $this->markTestSkipped('HHVM as different internal details.'); | ||
| 168 | } | ||
| 169 | $var = new \ArrayObject(array(123)); | ||
| 170 | $var->foo = 234; | ||
| 171 | |||
| 172 | $expected = <<<EOTXT | ||
| 173 | ArrayObject { | ||
| 174 | +"foo": 234 | ||
| 175 | flag::STD_PROP_LIST: false | ||
| 176 | flag::ARRAY_AS_PROPS: false | ||
| 177 | iteratorClass: "ArrayIterator" | ||
| 178 | storage: array:1 [ | ||
| 179 | 0 => 123 | ||
| 180 | ] | ||
| 181 | } | ||
| 182 | EOTXT; | ||
| 183 | $this->assertDumpEquals($expected, $var); | ||
| 184 | } | ||
| 185 | |||
| 186 | public function testArrayIterator() | ||
| 187 | { | ||
| 188 | if (\defined('HHVM_VERSION')) { | ||
| 189 | $this->markTestSkipped('HHVM as different internal details.'); | ||
| 190 | } | ||
| 191 | $var = new MyArrayIterator(array(234)); | ||
| 192 | |||
| 193 | $expected = <<<EOTXT | ||
| 194 | Symfony\Component\VarDumper\Tests\Caster\MyArrayIterator { | ||
| 195 | -foo: 123 | ||
| 196 | flag::STD_PROP_LIST: false | ||
| 197 | flag::ARRAY_AS_PROPS: false | ||
| 198 | storage: array:1 [ | ||
| 199 | 0 => 234 | ||
| 200 | ] | ||
| 201 | } | ||
| 202 | EOTXT; | ||
| 203 | $this->assertDumpEquals($expected, $var); | ||
| 204 | } | ||
| 205 | } | ||
| 206 | |||
| 207 | class MyArrayIterator extends \ArrayIterator | ||
| 208 | { | ||
| 209 | private $foo = 123; | ||
| 210 | } |
This diff is collapsed.
Click to expand it.
| 1 | <?php | ||
| 2 | |||
| 3 | /* foo.twig */ | ||
| 4 | class __TwigTemplate_VarDumperFixture_u75a09 extends Twig\Template | ||
| 5 | { | ||
| 6 | private $filename; | ||
| 7 | |||
| 8 | public function __construct(Twig\Environment $env = null, $filename = null) | ||
| 9 | { | ||
| 10 | if (null !== $env) { | ||
| 11 | parent::__construct($env); | ||
| 12 | } | ||
| 13 | $this->parent = false; | ||
| 14 | $this->blocks = array(); | ||
| 15 | $this->filename = $filename; | ||
| 16 | } | ||
| 17 | |||
| 18 | protected function doDisplay(array $context, array $blocks = array()) | ||
| 19 | { | ||
| 20 | // line 2 | ||
| 21 | throw new \Exception('Foobar'); | ||
| 22 | } | ||
| 23 | |||
| 24 | public function getTemplateName() | ||
| 25 | { | ||
| 26 | return 'foo.twig'; | ||
| 27 | } | ||
| 28 | |||
| 29 | public function getDebugInfo() | ||
| 30 | { | ||
| 31 | return array(21 => 2); | ||
| 32 | } | ||
| 33 | |||
| 34 | public function getSourceContext() | ||
| 35 | { | ||
| 36 | return new Twig\Source(" foo bar\n twig source\n\n", 'foo.twig', false === $this->filename ? null : ($this->filename ?: 'bar.twig')); | ||
| 37 | } | ||
| 38 | } |
| 1 | <?php | ||
| 2 | |||
| 3 | namespace Symfony\Component\VarDumper\Tests\Fixture; | ||
| 4 | |||
| 5 | if (!class_exists('Symfony\Component\VarDumper\Tests\Fixture\DumbFoo')) { | ||
| 6 | class DumbFoo | ||
| 7 | { | ||
| 8 | public $foo = 'foo'; | ||
| 9 | } | ||
| 10 | } | ||
| 11 | |||
| 12 | $foo = new DumbFoo(); | ||
| 13 | $foo->bar = 'bar'; | ||
| 14 | |||
| 15 | $g = fopen(__FILE__, 'r'); | ||
| 16 | |||
| 17 | $var = array( | ||
| 18 | 'number' => 1, null, | ||
| 19 | 'const' => 1.1, true, false, NAN, INF, -INF, PHP_INT_MAX, | ||
| 20 | 'str' => "déjà\n", "\xE9\x00", | ||
| 21 | '[]' => array(), | ||
| 22 | 'res' => $g, | ||
| 23 | 'obj' => $foo, | ||
| 24 | 'closure' => function ($a, \PDO &$b = null) {}, | ||
| 25 | 'line' => __LINE__ - 1, | ||
| 26 | 'nobj' => array((object) array()), | ||
| 27 | ); | ||
| 28 | |||
| 29 | $r = array(); | ||
| 30 | $r[] = &$r; | ||
| 31 | |||
| 32 | $var['recurs'] = &$r; | ||
| 33 | $var[] = &$var[0]; | ||
| 34 | $var['sobj'] = $var['obj']; | ||
| 35 | $var['snobj'] = &$var['nobj'][0]; | ||
| 36 | $var['snobj2'] = $var['nobj'][0]; | ||
| 37 | $var['file'] = __FILE__; | ||
| 38 | $var["bin-key-\xE9"] = ''; | ||
| 39 | |||
| 40 | unset($g, $r); |
| 1 | <?php | ||
| 2 | |||
| 3 | /* | ||
| 4 | * This file is part of the Symfony package. | ||
| 5 | * | ||
| 6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
| 7 | * | ||
| 8 | * For the full copyright and license information, please view the LICENSE | ||
| 9 | * file that was distributed with this source code. | ||
| 10 | */ | ||
| 11 | |||
| 12 | namespace Symfony\Component\VarDumper\Tests; | ||
| 13 | |||
| 14 | use PHPUnit\Framework\TestCase; | ||
| 15 | use Symfony\Component\VarDumper\Cloner\VarCloner; | ||
| 16 | use Symfony\Component\VarDumper\Dumper\HtmlDumper; | ||
| 17 | |||
| 18 | /** | ||
| 19 | * @author Nicolas Grekas <p@tchwork.com> | ||
| 20 | */ | ||
| 21 | class HtmlDumperTest extends TestCase | ||
| 22 | { | ||
| 23 | public function testGet() | ||
| 24 | { | ||
| 25 | require __DIR__.'/Fixtures/dumb-var.php'; | ||
| 26 | |||
| 27 | $dumper = new HtmlDumper('php://output'); | ||
| 28 | $dumper->setDumpHeader('<foo></foo>'); | ||
| 29 | $dumper->setDumpBoundaries('<bar>', '</bar>'); | ||
| 30 | $cloner = new VarCloner(); | ||
| 31 | $cloner->addCasters(array( | ||
| 32 | ':stream' => function ($res, $a) { | ||
| 33 | unset($a['uri'], $a['wrapper_data']); | ||
| 34 | |||
| 35 | return $a; | ||
| 36 | }, | ||
| 37 | )); | ||
| 38 | $data = $cloner->cloneVar($var); | ||
| 39 | |||
| 40 | ob_start(); | ||
| 41 | $dumper->dump($data); | ||
| 42 | $out = ob_get_clean(); | ||
| 43 | $out = preg_replace('/[ \t]+$/m', '', $out); | ||
| 44 | $var['file'] = htmlspecialchars($var['file'], ENT_QUOTES, 'UTF-8'); | ||
| 45 | $intMax = PHP_INT_MAX; | ||
| 46 | preg_match('/sf-dump-\d+/', $out, $dumpId); | ||
| 47 | $dumpId = $dumpId[0]; | ||
| 48 | $res = (int) $var['res']; | ||
| 49 | $closure54 = ''; | ||
| 50 | $r = \defined('HHVM_VERSION') ? '' : '<a class=sf-dump-ref>#%d</a>'; | ||
| 51 | |||
| 52 | if (\PHP_VERSION_ID >= 50400) { | ||
| 53 | $closure54 = <<<EOTXT | ||
| 54 | |||
| 55 | <span class=sf-dump-meta>class</span>: "<span class=sf-dump-str title="48 characters">Symfony\Component\VarDumper\Tests\HtmlDumperTest</span>" | ||
| 56 | <span class=sf-dump-meta>this</span>: <abbr title="Symfony\Component\VarDumper\Tests\HtmlDumperTest" class=sf-dump-note>HtmlDumperTest</abbr> {{$r} &%s;} | ||
| 57 | EOTXT; | ||
| 58 | } | ||
| 59 | |||
| 60 | $this->assertStringMatchesFormat( | ||
| 61 | <<<EOTXT | ||
| 62 | <foo></foo><bar><span class=sf-dump-note>array:24</span> [<samp> | ||
| 63 | "<span class=sf-dump-key>number</span>" => <span class=sf-dump-num>1</span> | ||
| 64 | <span class=sf-dump-key>0</span> => <a class=sf-dump-ref href=#{$dumpId}-ref01 title="2 occurrences">&1</a> <span class=sf-dump-const>null</span> | ||
| 65 | "<span class=sf-dump-key>const</span>" => <span class=sf-dump-num>1.1</span> | ||
| 66 | <span class=sf-dump-key>1</span> => <span class=sf-dump-const>true</span> | ||
| 67 | <span class=sf-dump-key>2</span> => <span class=sf-dump-const>false</span> | ||
| 68 | <span class=sf-dump-key>3</span> => <span class=sf-dump-num>NAN</span> | ||
| 69 | <span class=sf-dump-key>4</span> => <span class=sf-dump-num>INF</span> | ||
| 70 | <span class=sf-dump-key>5</span> => <span class=sf-dump-num>-INF</span> | ||
| 71 | <span class=sf-dump-key>6</span> => <span class=sf-dump-num>{$intMax}</span> | ||
| 72 | "<span class=sf-dump-key>str</span>" => "<span class=sf-dump-str title="5 characters">d&%s;j&%s;</span>\\n" | ||
| 73 | <span class=sf-dump-key>7</span> => b"<span class=sf-dump-str title="2 binary or non-UTF-8 characters">&%s;</span>\\x00" | ||
| 74 | "<span class=sf-dump-key>[]</span>" => [] | ||
| 75 | "<span class=sf-dump-key>res</span>" => <span class=sf-dump-note>stream resource</span> <a class=sf-dump-ref>@{$res}</a><samp> | ||
| 76 | %A <span class=sf-dump-meta>wrapper_type</span>: "<span class=sf-dump-str title="9 characters">plainfile</span>" | ||
| 77 | <span class=sf-dump-meta>stream_type</span>: "<span class=sf-dump-str title="5 characters">STDIO</span>" | ||
| 78 | <span class=sf-dump-meta>mode</span>: "<span class=sf-dump-str>r</span>" | ||
| 79 | <span class=sf-dump-meta>unread_bytes</span>: <span class=sf-dump-num>0</span> | ||
| 80 | <span class=sf-dump-meta>seekable</span>: <span class=sf-dump-const>true</span> | ||
| 81 | %A <span class=sf-dump-meta>options</span>: [] | ||
| 82 | </samp>} | ||
| 83 | "<span class=sf-dump-key>obj</span>" => <abbr title="Symfony\Component\VarDumper\Tests\Fixture\DumbFoo" class=sf-dump-note>DumbFoo</abbr> {<a class=sf-dump-ref href=#{$dumpId}-ref2%d title="2 occurrences">#%d</a><samp id={$dumpId}-ref2%d> | ||
| 84 | +<span class=sf-dump-public title="Public property">foo</span>: "<span class=sf-dump-str title="3 characters">foo</span>" | ||
| 85 | +"<span class=sf-dump-public title="Runtime added dynamic property">bar</span>": "<span class=sf-dump-str title="3 characters">bar</span>" | ||
| 86 | </samp>} | ||
| 87 | "<span class=sf-dump-key>closure</span>" => <span class=sf-dump-note>Closure</span> {{$r}<samp>{$closure54} | ||
| 88 | <span class=sf-dump-meta>parameters</span>: {<samp> | ||
| 89 | <span class=sf-dump-meta>\$a</span>: {} | ||
| 90 | <span class=sf-dump-meta>&\$b</span>: {<samp> | ||
| 91 | <span class=sf-dump-meta>typeHint</span>: "<span class=sf-dump-str title="3 characters">PDO</span>" | ||
| 92 | <span class=sf-dump-meta>default</span>: <span class=sf-dump-const>null</span> | ||
| 93 | </samp>} | ||
| 94 | </samp>} | ||
| 95 | <span class=sf-dump-meta>file</span>: "<span class=sf-dump-str title="%d characters">{$var['file']}</span>" | ||
| 96 | <span class=sf-dump-meta>line</span>: "<span class=sf-dump-str title="%d characters">{$var['line']} to {$var['line']}</span>" | ||
| 97 | </samp>} | ||
| 98 | "<span class=sf-dump-key>line</span>" => <span class=sf-dump-num>{$var['line']}</span> | ||
| 99 | "<span class=sf-dump-key>nobj</span>" => <span class=sf-dump-note>array:1</span> [<samp> | ||
| 100 | <span class=sf-dump-index>0</span> => <a class=sf-dump-ref href=#{$dumpId}-ref03 title="2 occurrences">&3</a> {<a class=sf-dump-ref href=#{$dumpId}-ref2%d title="3 occurrences">#%d</a>} | ||
| 101 | </samp>] | ||
| 102 | "<span class=sf-dump-key>recurs</span>" => <a class=sf-dump-ref href=#{$dumpId}-ref04 title="2 occurrences">&4</a> <span class=sf-dump-note>array:1</span> [<samp id={$dumpId}-ref04> | ||
| 103 | <span class=sf-dump-index>0</span> => <a class=sf-dump-ref href=#{$dumpId}-ref04 title="2 occurrences">&4</a> <span class=sf-dump-note>array:1</span> [<a class=sf-dump-ref href=#{$dumpId}-ref04 title="2 occurrences">&4</a>] | ||
| 104 | </samp>] | ||
| 105 | <span class=sf-dump-key>8</span> => <a class=sf-dump-ref href=#{$dumpId}-ref01 title="2 occurrences">&1</a> <span class=sf-dump-const>null</span> | ||
| 106 | "<span class=sf-dump-key>sobj</span>" => <abbr title="Symfony\Component\VarDumper\Tests\Fixture\DumbFoo" class=sf-dump-note>DumbFoo</abbr> {<a class=sf-dump-ref href=#{$dumpId}-ref2%d title="2 occurrences">#%d</a>} | ||
| 107 | "<span class=sf-dump-key>snobj</span>" => <a class=sf-dump-ref href=#{$dumpId}-ref03 title="2 occurrences">&3</a> {<a class=sf-dump-ref href=#{$dumpId}-ref2%d title="3 occurrences">#%d</a>} | ||
| 108 | "<span class=sf-dump-key>snobj2</span>" => {<a class=sf-dump-ref href=#{$dumpId}-ref2%d title="3 occurrences">#%d</a>} | ||
| 109 | "<span class=sf-dump-key>file</span>" => "<span class=sf-dump-str title="%d characters">{$var['file']}</span>" | ||
| 110 | b"<span class=sf-dump-key>bin-key-&%s;</span>" => "" | ||
| 111 | </samp>] | ||
| 112 | </bar> | ||
| 113 | |||
| 114 | EOTXT | ||
| 115 | , | ||
| 116 | |||
| 117 | $out | ||
| 118 | ); | ||
| 119 | } | ||
| 120 | |||
| 121 | public function testCharset() | ||
| 122 | { | ||
| 123 | $var = mb_convert_encoding('Словарь', 'CP1251', 'UTF-8'); | ||
| 124 | |||
| 125 | $dumper = new HtmlDumper('php://output', 'CP1251'); | ||
| 126 | $dumper->setDumpHeader('<foo></foo>'); | ||
| 127 | $dumper->setDumpBoundaries('<bar>', '</bar>'); | ||
| 128 | $cloner = new VarCloner(); | ||
| 129 | |||
| 130 | $data = $cloner->cloneVar($var); | ||
| 131 | $out = fopen('php://memory', 'r+b'); | ||
| 132 | $dumper->dump($data, $out); | ||
| 133 | $out = stream_get_contents($out, -1, 0); | ||
| 134 | |||
| 135 | $this->assertStringMatchesFormat( | ||
| 136 | <<<'EOTXT' | ||
| 137 | <foo></foo><bar>b"<span class=sf-dump-str title="7 binary or non-UTF-8 characters">Словарь</span>" | ||
| 138 | </bar> | ||
| 139 | |||
| 140 | EOTXT | ||
| 141 | , | ||
| 142 | $out | ||
| 143 | ); | ||
| 144 | } | ||
| 145 | |||
| 146 | public function testAppend() | ||
| 147 | { | ||
| 148 | $out = fopen('php://memory', 'r+b'); | ||
| 149 | |||
| 150 | $dumper = new HtmlDumper(); | ||
| 151 | $dumper->setDumpHeader('<foo></foo>'); | ||
| 152 | $dumper->setDumpBoundaries('<bar>', '</bar>'); | ||
| 153 | $cloner = new VarCloner(); | ||
| 154 | |||
| 155 | $dumper->dump($cloner->cloneVar(123), $out); | ||
| 156 | $dumper->dump($cloner->cloneVar(456), $out); | ||
| 157 | |||
| 158 | $out = stream_get_contents($out, -1, 0); | ||
| 159 | |||
| 160 | $this->assertSame(<<<'EOTXT' | ||
| 161 | <foo></foo><bar><span class=sf-dump-num>123</span> | ||
| 162 | </bar> | ||
| 163 | <bar><span class=sf-dump-num>456</span> | ||
| 164 | </bar> | ||
| 165 | |||
| 166 | EOTXT | ||
| 167 | , | ||
| 168 | $out | ||
| 169 | ); | ||
| 170 | } | ||
| 171 | } |
| 1 | <?php | ||
| 2 | |||
| 3 | /* | ||
| 4 | * This file is part of the Symfony package. | ||
| 5 | * | ||
| 6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
| 7 | * | ||
| 8 | * For the full copyright and license information, please view the LICENSE | ||
| 9 | * file that was distributed with this source code. | ||
| 10 | */ | ||
| 11 | |||
| 12 | namespace Symfony\Component\VarDumper\Tests\Test; | ||
| 13 | |||
| 14 | use Symfony\Component\VarDumper\Test\VarDumperTestCase; | ||
| 15 | use Symfony\Component\VarDumper\Test\VarDumperTestTrait; | ||
| 16 | |||
| 17 | class VarDumperTestTraitRequire54 extends VarDumperTestCase | ||
| 18 | { | ||
| 19 | use VarDumperTestTrait; | ||
| 20 | |||
| 21 | public function testItComparesLargeData() | ||
| 22 | { | ||
| 23 | $howMany = 700; | ||
| 24 | $data = array_fill_keys(range(0, $howMany), array('a', 'b', 'c', 'd')); | ||
| 25 | |||
| 26 | $expected = sprintf("array:%d [\n", $howMany + 1); | ||
| 27 | for ($i = 0; $i <= $howMany; ++$i) { | ||
| 28 | $expected .= <<<EODUMP | ||
| 29 | $i => array:4 [ | ||
| 30 | 0 => "a" | ||
| 31 | 1 => "b" | ||
| 32 | 2 => "c" | ||
| 33 | 3 => "d" | ||
| 34 | ]\n | ||
| 35 | EODUMP; | ||
| 36 | } | ||
| 37 | $expected .= "]\n"; | ||
| 38 | |||
| 39 | $this->assertDumpEquals($expected, $data); | ||
| 40 | } | ||
| 41 | } |
| 1 | <?php | ||
| 2 | |||
| 3 | /* | ||
| 4 | * This file is part of the Symfony package. | ||
| 5 | * | ||
| 6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
| 7 | * | ||
| 8 | * For the full copyright and license information, please view the LICENSE | ||
| 9 | * file that was distributed with this source code. | ||
| 10 | */ | ||
| 11 | |||
| 12 | // Skipping trait tests for PHP < 5.4 | ||
| 13 | if (\PHP_VERSION_ID >= 50400) { | ||
| 14 | require __DIR__.'/VarDumperTestTraitRequire54.php'; | ||
| 15 | } |
| 1 | <?php | ||
| 2 | |||
| 3 | /* | ||
| 4 | * This file is part of the Symfony package. | ||
| 5 | * | ||
| 6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
| 7 | * | ||
| 8 | * For the full copyright and license information, please view the LICENSE | ||
| 9 | * file that was distributed with this source code. | ||
| 10 | */ | ||
| 11 | |||
| 12 | namespace Symfony\Component\VarDumper\Tests; | ||
| 13 | |||
| 14 | use PHPUnit\Framework\TestCase; | ||
| 15 | use Symfony\Component\VarDumper\Cloner\VarCloner; | ||
| 16 | |||
| 17 | /** | ||
| 18 | * @author Nicolas Grekas <p@tchwork.com> | ||
| 19 | */ | ||
| 20 | class VarClonerTest extends TestCase | ||
| 21 | { | ||
| 22 | public function testMaxIntBoundary() | ||
| 23 | { | ||
| 24 | $data = array(PHP_INT_MAX => 123); | ||
| 25 | |||
| 26 | $cloner = new VarCloner(); | ||
| 27 | $clone = $cloner->cloneVar($data); | ||
| 28 | |||
| 29 | $expected = <<<EOTXT | ||
| 30 | Symfony\Component\VarDumper\Cloner\Data Object | ||
| 31 | ( | ||
| 32 | [data:Symfony\Component\VarDumper\Cloner\Data:private] => Array | ||
| 33 | ( | ||
| 34 | [0] => Array | ||
| 35 | ( | ||
| 36 | [0] => Symfony\Component\VarDumper\Cloner\Stub Object | ||
| 37 | ( | ||
| 38 | [type] => array | ||
| 39 | [class] => assoc | ||
| 40 | [value] => 1 | ||
| 41 | [cut] => 0 | ||
| 42 | [handle] => 0 | ||
| 43 | [refCount] => 0 | ||
| 44 | [position] => 1 | ||
| 45 | ) | ||
| 46 | |||
| 47 | ) | ||
| 48 | |||
| 49 | [1] => Array | ||
| 50 | ( | ||
| 51 | [%s] => 123 | ||
| 52 | ) | ||
| 53 | |||
| 54 | ) | ||
| 55 | |||
| 56 | [maxDepth:Symfony\Component\VarDumper\Cloner\Data:private] => 20 | ||
| 57 | [maxItemsPerDepth:Symfony\Component\VarDumper\Cloner\Data:private] => -1 | ||
| 58 | [useRefHandles:Symfony\Component\VarDumper\Cloner\Data:private] => -1 | ||
| 59 | ) | ||
| 60 | |||
| 61 | EOTXT; | ||
| 62 | $this->assertSame(sprintf($expected, PHP_INT_MAX), print_r($clone, true)); | ||
| 63 | } | ||
| 64 | |||
| 65 | public function testClone() | ||
| 66 | { | ||
| 67 | $json = json_decode('{"1":{"var":"val"},"2":{"var":"val"}}'); | ||
| 68 | |||
| 69 | $cloner = new VarCloner(); | ||
| 70 | $clone = $cloner->cloneVar($json); | ||
| 71 | |||
| 72 | $expected = <<<EOTXT | ||
| 73 | Symfony\Component\VarDumper\Cloner\Data Object | ||
| 74 | ( | ||
| 75 | [data:Symfony\Component\VarDumper\Cloner\Data:private] => Array | ||
| 76 | ( | ||
| 77 | [0] => Array | ||
| 78 | ( | ||
| 79 | [0] => Symfony\Component\VarDumper\Cloner\Stub Object | ||
| 80 | ( | ||
| 81 | [type] => object | ||
| 82 | [class] => stdClass | ||
| 83 | [value] => | ||
| 84 | [cut] => 0 | ||
| 85 | [handle] => %i | ||
| 86 | [refCount] => 0 | ||
| 87 | [position] => 1 | ||
| 88 | ) | ||
| 89 | |||
| 90 | ) | ||
| 91 | |||
| 92 | [1] => Array | ||
| 93 | ( | ||
| 94 | [\000+\0001] => Symfony\Component\VarDumper\Cloner\Stub Object | ||
| 95 | ( | ||
| 96 | [type] => object | ||
| 97 | [class] => stdClass | ||
| 98 | [value] => | ||
| 99 | [cut] => 0 | ||
| 100 | [handle] => %i | ||
| 101 | [refCount] => 0 | ||
| 102 | [position] => 2 | ||
| 103 | ) | ||
| 104 | |||
| 105 | [\000+\0002] => Symfony\Component\VarDumper\Cloner\Stub Object | ||
| 106 | ( | ||
| 107 | [type] => object | ||
| 108 | [class] => stdClass | ||
| 109 | [value] => | ||
| 110 | [cut] => 0 | ||
| 111 | [handle] => %i | ||
| 112 | [refCount] => 0 | ||
| 113 | [position] => 3 | ||
| 114 | ) | ||
| 115 | |||
| 116 | ) | ||
| 117 | |||
| 118 | [2] => Array | ||
| 119 | ( | ||
| 120 | [\000+\000var] => val | ||
| 121 | ) | ||
| 122 | |||
| 123 | [3] => Array | ||
| 124 | ( | ||
| 125 | [\000+\000var] => val | ||
| 126 | ) | ||
| 127 | |||
| 128 | ) | ||
| 129 | |||
| 130 | [maxDepth:Symfony\Component\VarDumper\Cloner\Data:private] => 20 | ||
| 131 | [maxItemsPerDepth:Symfony\Component\VarDumper\Cloner\Data:private] => -1 | ||
| 132 | [useRefHandles:Symfony\Component\VarDumper\Cloner\Data:private] => -1 | ||
| 133 | ) | ||
| 134 | |||
| 135 | EOTXT; | ||
| 136 | $this->assertStringMatchesFormat($expected, print_r($clone, true)); | ||
| 137 | } | ||
| 138 | |||
| 139 | public function testJsonCast() | ||
| 140 | { | ||
| 141 | if (2 == ini_get('xdebug.overload_var_dump')) { | ||
| 142 | $this->markTestSkipped('xdebug is active'); | ||
| 143 | } | ||
| 144 | |||
| 145 | $data = (array) json_decode('{"1":{}}'); | ||
| 146 | |||
| 147 | $cloner = new VarCloner(); | ||
| 148 | $clone = $cloner->cloneVar($data); | ||
| 149 | |||
| 150 | $expected = <<<'EOTXT' | ||
| 151 | object(Symfony\Component\VarDumper\Cloner\Data)#%i (4) { | ||
| 152 | ["data":"Symfony\Component\VarDumper\Cloner\Data":private]=> | ||
| 153 | array(2) { | ||
| 154 | [0]=> | ||
| 155 | array(1) { | ||
| 156 | [0]=> | ||
| 157 | object(Symfony\Component\VarDumper\Cloner\Stub)#%i (7) { | ||
| 158 | ["type"]=> | ||
| 159 | string(5) "array" | ||
| 160 | ["class"]=> | ||
| 161 | string(5) "assoc" | ||
| 162 | ["value"]=> | ||
| 163 | int(1) | ||
| 164 | ["cut"]=> | ||
| 165 | int(0) | ||
| 166 | ["handle"]=> | ||
| 167 | int(0) | ||
| 168 | ["refCount"]=> | ||
| 169 | int(0) | ||
| 170 | ["position"]=> | ||
| 171 | int(1) | ||
| 172 | } | ||
| 173 | } | ||
| 174 | [1]=> | ||
| 175 | array(1) { | ||
| 176 | ["1"]=> | ||
| 177 | object(Symfony\Component\VarDumper\Cloner\Stub)#%i (7) { | ||
| 178 | ["type"]=> | ||
| 179 | string(6) "object" | ||
| 180 | ["class"]=> | ||
| 181 | string(8) "stdClass" | ||
| 182 | ["value"]=> | ||
| 183 | NULL | ||
| 184 | ["cut"]=> | ||
| 185 | int(0) | ||
| 186 | ["handle"]=> | ||
| 187 | int(%i) | ||
| 188 | ["refCount"]=> | ||
| 189 | int(0) | ||
| 190 | ["position"]=> | ||
| 191 | int(0) | ||
| 192 | } | ||
| 193 | } | ||
| 194 | } | ||
| 195 | ["maxDepth":"Symfony\Component\VarDumper\Cloner\Data":private]=> | ||
| 196 | int(20) | ||
| 197 | ["maxItemsPerDepth":"Symfony\Component\VarDumper\Cloner\Data":private]=> | ||
| 198 | int(-1) | ||
| 199 | ["useRefHandles":"Symfony\Component\VarDumper\Cloner\Data":private]=> | ||
| 200 | int(-1) | ||
| 201 | } | ||
| 202 | |||
| 203 | EOTXT; | ||
| 204 | ob_start(); | ||
| 205 | var_dump($clone); | ||
| 206 | $this->assertStringMatchesFormat(\PHP_VERSION_ID >= 70200 ? str_replace('"1"', '1', $expected) : $expected, ob_get_clean()); | ||
| 207 | } | ||
| 208 | |||
| 209 | public function testCaster() | ||
| 210 | { | ||
| 211 | $cloner = new VarCloner(array( | ||
| 212 | '*' => function ($obj, $array) { | ||
| 213 | return array('foo' => 123); | ||
| 214 | }, | ||
| 215 | __CLASS__ => function ($obj, $array) { | ||
| 216 | ++$array['foo']; | ||
| 217 | |||
| 218 | return $array; | ||
| 219 | }, | ||
| 220 | )); | ||
| 221 | $clone = $cloner->cloneVar($this); | ||
| 222 | |||
| 223 | $expected = <<<EOTXT | ||
| 224 | Symfony\Component\VarDumper\Cloner\Data Object | ||
| 225 | ( | ||
| 226 | [data:Symfony\Component\VarDumper\Cloner\Data:private] => Array | ||
| 227 | ( | ||
| 228 | [0] => Array | ||
| 229 | ( | ||
| 230 | [0] => Symfony\Component\VarDumper\Cloner\Stub Object | ||
| 231 | ( | ||
| 232 | [type] => object | ||
| 233 | [class] => %s | ||
| 234 | [value] => | ||
| 235 | [cut] => 0 | ||
| 236 | [handle] => %i | ||
| 237 | [refCount] => 0 | ||
| 238 | [position] => 1 | ||
| 239 | ) | ||
| 240 | |||
| 241 | ) | ||
| 242 | |||
| 243 | [1] => Array | ||
| 244 | ( | ||
| 245 | [foo] => 124 | ||
| 246 | ) | ||
| 247 | |||
| 248 | ) | ||
| 249 | |||
| 250 | [maxDepth:Symfony\Component\VarDumper\Cloner\Data:private] => 20 | ||
| 251 | [maxItemsPerDepth:Symfony\Component\VarDumper\Cloner\Data:private] => -1 | ||
| 252 | [useRefHandles:Symfony\Component\VarDumper\Cloner\Data:private] => -1 | ||
| 253 | ) | ||
| 254 | |||
| 255 | EOTXT; | ||
| 256 | $this->assertStringMatchesFormat($expected, print_r($clone, true)); | ||
| 257 | } | ||
| 258 | } |
vendor/symfony/var-dumper/VarDumper.php
0 → 100644
This diff is collapsed.
Click to expand it.
vendor/symfony/var-dumper/composer.json
0 → 100644
This diff is collapsed.
Click to expand it.
vendor/symfony/var-dumper/phpunit.xml.dist
0 → 100644
This diff is collapsed.
Click to expand it.
vendor/vlucas/phpdotenv/LICENSE.txt
0 → 100644
This diff is collapsed.
Click to expand it.
vendor/vlucas/phpdotenv/README.md
0 → 100644
This diff is collapsed.
Click to expand it.
vendor/vlucas/phpdotenv/composer.json
0 → 100644
This diff is collapsed.
Click to expand it.
vendor/vlucas/phpdotenv/src/Dotenv.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-activate.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/about.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/admin-ajax.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/admin-footer.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/admin-functions.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/admin-header.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/admin-post.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/admin.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/async-upload.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/authorize-application.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/comment.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/credits.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/about-rtl.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/about-rtl.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/about.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/about.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/admin-menu-rtl.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/admin-menu-rtl.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/admin-menu.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/admin-menu.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/code-editor-rtl.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/code-editor-rtl.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/code-editor.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/code-editor.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/color-picker-rtl.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/color-picker-rtl.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/color-picker.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/color-picker.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/colors/_admin.scss
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/colors/_mixins.scss
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/colors/_variables.scss
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/colors/blue/colors-rtl.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/colors/blue/colors-rtl.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/colors/blue/colors.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/colors/blue/colors.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/colors/blue/colors.scss
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/colors/coffee/colors-rtl.css
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
wp-admin/css/colors/coffee/colors.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/colors/coffee/colors.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/colors/coffee/colors.scss
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/colors/ectoplasm/colors-rtl.css
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
wp-admin/css/colors/ectoplasm/colors.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/colors/ectoplasm/colors.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/colors/ectoplasm/colors.scss
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/colors/light/colors-rtl.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/colors/light/colors-rtl.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/colors/light/colors.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/colors/light/colors.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/colors/light/colors.scss
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/colors/midnight/colors-rtl.css
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
wp-admin/css/colors/midnight/colors.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/colors/midnight/colors.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/colors/midnight/colors.scss
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/colors/modern/colors-rtl.css
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
wp-admin/css/colors/modern/colors.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/colors/modern/colors.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/colors/modern/colors.scss
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/colors/ocean/colors-rtl.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/colors/ocean/colors-rtl.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/colors/ocean/colors.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/colors/ocean/colors.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/colors/ocean/colors.scss
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/colors/sunrise/colors-rtl.css
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
wp-admin/css/colors/sunrise/colors.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/colors/sunrise/colors.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/colors/sunrise/colors.scss
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/common-rtl.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/common-rtl.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/common.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/common.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/customize-controls-rtl.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/customize-controls-rtl.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/customize-controls.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/customize-controls.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/customize-nav-menus-rtl.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/customize-nav-menus-rtl.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/customize-nav-menus.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/customize-nav-menus.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/customize-widgets-rtl.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/customize-widgets-rtl.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/customize-widgets.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/customize-widgets.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/dashboard-rtl.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/dashboard-rtl.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/dashboard.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/dashboard.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/deprecated-media-rtl.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/deprecated-media-rtl.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/deprecated-media.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/deprecated-media.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/edit-rtl.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/edit-rtl.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/edit.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/edit.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/farbtastic-rtl.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/farbtastic-rtl.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/farbtastic.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/farbtastic.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/forms-rtl.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/forms-rtl.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/forms.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/forms.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/install-rtl.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/install-rtl.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/install.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/install.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/l10n-rtl.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/l10n-rtl.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/l10n.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/l10n.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/list-tables-rtl.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/list-tables-rtl.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/list-tables.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/list-tables.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/login-rtl.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/login-rtl.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/login.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/login.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/media-rtl.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/media-rtl.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/media.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/media.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/nav-menus-rtl.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/nav-menus-rtl.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/nav-menus.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/nav-menus.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/revisions-rtl.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/revisions-rtl.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/revisions.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/revisions.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/site-health-rtl.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/site-health-rtl.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/site-health.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/site-health.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/site-icon-rtl.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/site-icon-rtl.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/site-icon.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/site-icon.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/themes-rtl.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/themes-rtl.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/themes.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/themes.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/widgets-rtl.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/widgets-rtl.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/widgets.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/widgets.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/wp-admin-rtl.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/wp-admin-rtl.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/wp-admin.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/css/wp-admin.min.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/custom-background.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/custom-header.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/customize.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/edit-comments.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/edit-form-advanced.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/edit-form-blocks.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/edit-form-comment.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/edit-link-form.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/edit-tag-form.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/edit-tags.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/edit.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/erase-personal-data.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/export-personal-data.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/export.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/freedoms.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/images/about-header-about.svg
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/images/about-header-credits.svg
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/images/about-header-freedoms.svg
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/images/about-header-privacy.svg
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/images/about-texture.png
0 → 100644
100 KB
wp-admin/images/align-center-2x.png
0 → 100644
147 Bytes
wp-admin/images/align-center.png
0 → 100644
546 Bytes
wp-admin/images/align-left-2x.png
0 → 100644
143 Bytes
wp-admin/images/align-left.png
0 → 100644
554 Bytes
wp-admin/images/align-none-2x.png
0 → 100644
121 Bytes
wp-admin/images/align-none.png
0 → 100644
417 Bytes
wp-admin/images/align-right-2x.png
0 → 100644
142 Bytes
wp-admin/images/align-right.png
0 → 100644
509 Bytes
wp-admin/images/arrows-2x.png
0 → 100644
863 Bytes
wp-admin/images/arrows.png
0 → 100644
243 Bytes
wp-admin/images/browser-rtl.png
0 → 100644
39.2 KB
wp-admin/images/browser.png
0 → 100644
39.7 KB
wp-admin/images/bubble_bg-2x.gif
0 → 100644
424 Bytes
wp-admin/images/bubble_bg.gif
0 → 100644
398 Bytes
wp-admin/images/comment-grey-bubble-2x.png
0 → 100644
258 Bytes
wp-admin/images/comment-grey-bubble.png
0 → 100644
114 Bytes
wp-admin/images/date-button-2x.gif
0 → 100644
996 Bytes
wp-admin/images/date-button.gif
0 → 100644
400 Bytes
wp-admin/images/freedom-1.svg
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/images/freedom-2.svg
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/images/freedom-3.svg
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/images/freedom-4.svg
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/images/generic.png
0 → 100644
719 Bytes
wp-admin/images/icons32-2x.png
0 → 100644
21.3 KB
wp-admin/images/icons32-vs-2x.png
0 → 100644
20.9 KB
wp-admin/images/icons32-vs.png
0 → 100644
7.82 KB
wp-admin/images/icons32.png
0 → 100644
7.83 KB
wp-admin/images/imgedit-icons-2x.png
0 → 100644
7.48 KB
wp-admin/images/imgedit-icons.png
0 → 100644
3.96 KB
wp-admin/images/list-2x.png
0 → 100644
1.49 KB
wp-admin/images/list.png
0 → 100644
1003 Bytes
wp-admin/images/loading.gif
0 → 100644
1.34 KB
wp-admin/images/marker.png
0 → 100644
360 Bytes
wp-admin/images/mask.png
0 → 100644
1.95 KB
wp-admin/images/media-button-2x.png
0 → 100644
850 Bytes
wp-admin/images/media-button-image.gif
0 → 100644
200 Bytes
wp-admin/images/media-button-music.gif
0 → 100644
206 Bytes
wp-admin/images/media-button-other.gif
0 → 100644
248 Bytes
wp-admin/images/media-button-video.gif
0 → 100644
133 Bytes
wp-admin/images/media-button.png
0 → 100644
323 Bytes
wp-admin/images/menu-2x.png
0 → 100644
12.4 KB
wp-admin/images/menu-vs-2x.png
0 → 100644
12.2 KB
wp-admin/images/menu-vs.png
0 → 100644
4.97 KB
wp-admin/images/menu.png
0 → 100644
4.92 KB
wp-admin/images/no.png
0 → 100644
755 Bytes
wp-admin/images/post-formats-vs.png
0 → 100644
2.39 KB
wp-admin/images/post-formats.png
0 → 100644
2.11 KB
wp-admin/images/post-formats32-vs.png
0 → 100644
4.99 KB
wp-admin/images/post-formats32.png
0 → 100644
5.02 KB
wp-admin/images/privacy.svg
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/images/resize-2x.gif
0 → 100644
151 Bytes
wp-admin/images/resize-rtl-2x.gif
0 → 100644
150 Bytes
wp-admin/images/resize-rtl.gif
0 → 100644
70 Bytes
wp-admin/images/resize.gif
0 → 100644
64 Bytes
wp-admin/images/se.png
0 → 100644
120 Bytes
wp-admin/images/sort-2x.gif
0 → 100644
97 Bytes
wp-admin/images/sort.gif
0 → 100644
55 Bytes
wp-admin/images/spinner-2x.gif
0 → 100644
7.36 KB
wp-admin/images/spinner.gif
0 → 100644
3.57 KB
wp-admin/images/stars-2x.png
0 → 100644
1.23 KB
wp-admin/images/stars.png
0 → 100644
924 Bytes
wp-admin/images/w-logo-blue.png
0 → 100644
3.04 KB
wp-admin/images/w-logo-white.png
0 → 100644
5.27 KB
wp-admin/images/wheel.png
0 → 100644
5.91 KB
wp-admin/images/wordpress-logo-white.svg
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/images/wordpress-logo.png
0 → 100644
2.42 KB
wp-admin/images/wordpress-logo.svg
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/images/wpspin_light-2x.gif
0 → 100644
8.67 KB
wp-admin/images/wpspin_light.gif
0 → 100644
2 KB
wp-admin/images/xit-2x.gif
0 → 100644
825 Bytes
wp-admin/images/xit.gif
0 → 100644
181 Bytes
wp-admin/images/yes.png
0 → 100644
539 Bytes
wp-admin/import.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/admin-filters.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/admin.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/ajax-actions.php
0 → 100644
This diff could not be displayed because it is too large.
wp-admin/includes/bookmark.php
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
wp-admin/includes/class-core-upgrader.php
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
wp-admin/includes/class-ftp-pure.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/class-ftp-sockets.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/class-ftp.php
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
wp-admin/includes/class-pclzip.php
0 → 100644
This diff could not be displayed because it is too large.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
wp-admin/includes/class-plugin-upgrader.php
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
wp-admin/includes/class-theme-upgrader.php
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
wp-admin/includes/class-wp-debug-data.php
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
wp-admin/includes/class-wp-importer.php
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
wp-admin/includes/class-wp-list-table.php
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
wp-admin/includes/class-wp-screen.php
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
wp-admin/includes/class-wp-site-health.php
0 → 100644
This diff could not be displayed because it is too large.
wp-admin/includes/class-wp-site-icon.php
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
wp-admin/includes/class-wp-upgrader-skin.php
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
wp-admin/includes/class-wp-upgrader.php
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
wp-admin/includes/comment.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/continents-cities.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/credits.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/dashboard.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/deprecated.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/edit-tag-messages.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/export.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/file.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/image-edit.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/image.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/import.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/list-table.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/media.php
0 → 100644
This diff could not be displayed because it is too large.
wp-admin/includes/menu.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/meta-boxes.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/misc.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/ms-admin-filters.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/ms-deprecated.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/ms.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/nav-menu.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/network.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/noop.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/options.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/plugin-install.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/plugin.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/post.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/privacy-tools.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/revision.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/schema.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/screen.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/taxonomy.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/template.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/theme-install.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/theme.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/translation-install.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/update-core.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/update.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/upgrade.php
0 → 100644
This diff could not be displayed because it is too large.
wp-admin/includes/user.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/includes/widgets.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/index.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/install-helper.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/install.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/accordion.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/accordion.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/application-passwords.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/application-passwords.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/auth-app.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/auth-app.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/code-editor.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/code-editor.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/color-picker.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/color-picker.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/comment.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/comment.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/common.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/common.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/custom-background.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/custom-background.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/custom-header.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/customize-controls.js
0 → 100644
This diff could not be displayed because it is too large.
wp-admin/js/customize-controls.min.js
0 → 100644
This diff could not be displayed because it is too large.
wp-admin/js/customize-nav-menus.js
0 → 100644
This diff could not be displayed because it is too large.
wp-admin/js/customize-nav-menus.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/customize-widgets.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/customize-widgets.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/dashboard.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/dashboard.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/edit-comments.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/edit-comments.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/editor-expand.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/editor-expand.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/editor.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/editor.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/farbtastic.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/gallery.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/gallery.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/image-edit.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/image-edit.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/inline-edit-post.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/inline-edit-post.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/inline-edit-tax.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/inline-edit-tax.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/iris.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/language-chooser.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/language-chooser.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/link.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/link.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/media-gallery.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/media-gallery.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/media-upload.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/media-upload.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/media.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/media.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/nav-menu.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/nav-menu.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/password-strength-meter.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/password-strength-meter.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/plugin-install.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/plugin-install.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/post.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/post.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/postbox.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/postbox.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/privacy-tools.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/privacy-tools.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/revisions.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/revisions.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/set-post-thumbnail.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/set-post-thumbnail.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/site-health.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/site-health.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/svg-painter.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/svg-painter.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/tags-box.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/tags-box.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/tags-suggest.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/tags-suggest.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/tags.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/tags.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/theme-plugin-editor.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/theme-plugin-editor.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/theme.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/theme.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/updates.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/updates.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/user-profile.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/user-profile.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/user-suggest.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/user-suggest.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/widgets.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/widgets.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/widgets/custom-html-widgets.js
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
wp-admin/js/widgets/media-audio-widget.js
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
wp-admin/js/widgets/media-gallery-widget.js
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
wp-admin/js/widgets/media-image-widget.js
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
wp-admin/js/widgets/media-video-widget.js
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
wp-admin/js/widgets/media-widgets.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/widgets/media-widgets.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/widgets/text-widgets.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/widgets/text-widgets.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/word-count.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/word-count.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/xfn.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/js/xfn.min.js
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/link-add.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/link-manager.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/link-parse-opml.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/link.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/load-scripts.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/load-styles.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/maint/repair.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/media-new.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/media-upload.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/media.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/menu-header.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/menu.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/moderation.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/ms-admin.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/ms-delete-site.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/ms-edit.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/ms-options.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/ms-sites.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/ms-themes.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/ms-upgrade-network.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/ms-users.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/my-sites.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/nav-menus.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/network.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/network/about.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/network/admin.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/network/credits.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/network/edit.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/network/freedoms.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/network/index.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/network/menu.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/network/plugin-editor.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/network/plugin-install.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/network/plugins.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/network/privacy.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/network/profile.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/network/settings.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/network/setup.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/network/site-info.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/network/site-new.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/network/site-settings.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/network/site-themes.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/network/site-users.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/network/sites.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/network/theme-editor.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/network/theme-install.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/network/themes.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/network/update-core.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/network/update.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/network/upgrade.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/network/user-edit.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/network/user-new.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/network/users.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/options-discussion.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/options-general.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/options-head.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/options-media.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/options-permalink.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/options-privacy.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/options-reading.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/options-writing.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/options.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/plugin-editor.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/plugin-install.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/plugins.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/post-new.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/post.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/press-this.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/privacy-policy-guide.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/privacy.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/profile.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/revision.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/setup-config.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/site-editor.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/site-health-info.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/site-health.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/term.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/theme-editor.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/theme-install.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/themes.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/tools.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/update-core.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/update.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/upgrade-functions.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/upgrade.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/upload.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/user-edit.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/user-new.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/user/about.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/user/admin.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/user/credits.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/user/freedoms.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/user/index.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/user/menu.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/user/privacy.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/user/profile.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/user/user-edit.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/users.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/widgets-form-blocks.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/widgets-form.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-admin/widgets.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-blog-header.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-comments-post.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-config-sample.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-config.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-content/.DS_Store
0 → 100644
No preview for this file type
wp-content/index.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-content/languages/admin-en_CA.mo
0 → 100644
No preview for this file type
wp-content/languages/admin-en_CA.po
0 → 100644
This diff could not be displayed because it is too large.
wp-content/languages/admin-network-en_CA.mo
0 → 100644
No preview for this file type
wp-content/languages/admin-network-en_CA.po
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
wp-content/languages/en_CA.mo
0 → 100644
No preview for this file type
wp-content/languages/en_CA.po
0 → 100644
This diff could not be displayed because it is too large.
No preview for this file type
This diff is collapsed.
Click to expand it.
No preview for this file type
This diff is collapsed.
Click to expand it.
No preview for this file type
This diff is collapsed.
Click to expand it.
No preview for this file type
This diff is collapsed.
Click to expand it.
wp-content/plugins/akismet/.htaccess
0 → 100644
This diff is collapsed.
Click to expand it.
wp-content/plugins/akismet/LICENSE.txt
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
wp-content/plugins/akismet/_inc/akismet.css
0 → 100644
This diff is collapsed.
Click to expand it.
wp-content/plugins/akismet/_inc/akismet.js
0 → 100644
This diff is collapsed.
Click to expand it.
904 Bytes
4.93 KB
wp-content/plugins/akismet/akismet.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-content/plugins/akismet/changelog.txt
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
wp-content/plugins/akismet/class.akismet.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-content/plugins/akismet/index.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-content/plugins/akismet/readme.txt
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
wp-content/plugins/akismet/views/config.php
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
wp-content/plugins/akismet/views/enter.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-content/plugins/akismet/views/get.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-content/plugins/akismet/views/notice.php
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
wp-content/plugins/akismet/views/setup.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-content/plugins/akismet/views/start.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-content/plugins/akismet/views/stats.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-content/plugins/akismet/views/title.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-content/plugins/akismet/wrapper.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-content/plugins/hello.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-content/plugins/index.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-content/themes/.DS_Store
0 → 100644
No preview for this file type
wp-content/themes/index.php
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
wp-content/themes/understrap-child/LICENSE
0 → 100644
This diff is collapsed.
Click to expand it.
No preview for this file type
No preview for this file type
No preview for this file type
This diff is collapsed.
Click to expand it.
1.61 MB
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff is collapsed.
Click to expand it.
This diff could not be displayed because it is too large.
This diff is collapsed.
Click to expand it.
This diff could not be displayed because it is too large.
No preview for this file type
This diff could not be displayed because it is too large.
No preview for this file type
No preview for this file type
No preview for this file type
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff could not be displayed because it is too large.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
wp-content/themes/understrap-child/phpmd.xml
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
59 KB
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
wp-content/themes/understrap-child/src/sass/assets/bootstrap5/forms/_floating-labels.scss
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
wp-content/themes/understrap-child/src/sass/assets/bootstrap5/helpers/_colored-links.scss
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
wp-content/themes/understrap-child/src/sass/assets/bootstrap5/helpers/_stretched-link.scss
0 → 100644
This diff is collapsed.
Click to expand it.
wp-content/themes/understrap-child/src/sass/assets/bootstrap5/helpers/_text-truncation.scss
0 → 100644
This diff is collapsed.
Click to expand it.
wp-content/themes/understrap-child/src/sass/assets/bootstrap5/helpers/_visually-hidden.scss
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
wp-content/themes/understrap-child/src/sass/assets/bootstrap5/mixins/_table-variants.scss
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
wp-content/themes/understrap-child/src/sass/assets/bootstrap5/mixins/_visually-hidden.scss
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
wp-content/themes/understrap-child/src/sass/assets/understrap/theme/_blocks-bootstrap4.scss
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
wp-content/themes/understrap-child/src/sass/assets/understrap/theme/_theme_variables.scss
0 → 100644
This diff is collapsed.
Click to expand it.
wp-content/themes/understrap-child/src/sass/assets/understrap/theme/_understrap-bootstrap4.scss
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
wp-content/themes/understrap-child/style.css
0 → 100755
This diff is collapsed.
Click to expand it.
wp-content/themes/understrap/.editorconfig
0 → 100644
This diff is collapsed.
Click to expand it.
wp-content/themes/understrap/.gitattributes
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
wp-content/themes/understrap/.gitignore
0 → 100644
This diff is collapsed.
Click to expand it.
wp-content/themes/understrap/404.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-content/themes/understrap/LICENSE
0 → 100644
This diff is collapsed.
Click to expand it.
wp-content/themes/understrap/archive.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-content/themes/understrap/author.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-content/themes/understrap/comments.php
0 → 100644
This diff is collapsed.
Click to expand it.
wp-content/themes/understrap/composer.json
0 → 100644
This diff is collapsed.
Click to expand it.
wp-content/themes/understrap/composer.lock
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff could not be displayed because it is too large.
This diff is collapsed.
Click to expand it.
This diff could not be displayed because it is too large.
This diff is collapsed.
Click to expand it.
This diff could not be displayed because it is too large.
This diff is collapsed.
Click to expand it.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
wp-content/themes/understrap/css/theme.css
0 → 100644
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
-
Please register or sign in to post a comment