PluginProbe ʕ •ᴥ•ʔ
WP 2FA – Two-factor authentication for WordPress / 4.0.0
WP 2FA – Two-factor authentication for WordPress v4.0.0
4.0.0 1.7.1 2.0.0 2.0.1 2.1.0 2.2.0 2.2.1 2.3.0 2.4.0 2.4.1 2.4.2 2.5.0 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.8.0 2.9.0 2.9.1 2.9.2 2.9.3 3.0.0 3.0.1 3.1.0 3.1.1 3.1.1.2 trunk 1.2.0 1.3.0 1.4.0 1.4.1 1.4.2 1.5.0 1.5.1 1.5.2 1.6.0 1.6.1 1.6.2 1.7.0
wp-2fa / vendor / scoper.inc.php
wp-2fa / vendor Last commit date
composer 1 day ago autoload.php 1 day ago scoper.inc.php 1 day ago
scoper.inc.php
131 lines
1 <?php
2
3 namespace WP2FA_Vendor;
4
5 /**
6 * PHP-Scoper configuration file.
7 *
8 * @package wp2fa
9 * @copyright %%YEAR%% Melapress
10 * @license https://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
11 * @link https://wordpress.org/plugins/wp-2fa/
12 */
13 use WP2FA_Vendor\Isolated\Symfony\Component\Finder\Finder;
14 return array(
15 'prefix' => 'WP2FA_Vendor',
16 'finders' => array(
17 // General dependencies.
18 Finder::create()->files()->ignoreVCS(\true)->notName('/LICENSE|.*\\.md|.*\\.dist|Makefile|composer\\.(json|lock)/')->exclude(array('doc', 'test', 'test_old', 'tests', 'Tests', 'vendor-bin'))->in('../vendor'),
19 ),
20 'patchers' => array(static function (string $file_path, string $prefix, string $content) : string {
21 $path = \dirname(__FILE__) . \DIRECTORY_SEPARATOR . \implode(\DIRECTORY_SEPARATOR, array('composer', 'autoload_real.php'));
22 if (0 === \strcasecmp($file_path, $path)) {
23 $content = \str_replace('spl_autoload_unregister(array(\'ComposerAutoloader', 'spl_autoload_unregister(array(\'' . $prefix . '\\\\ComposerAutoloader', $content);
24 }
25 return $content;
26 }, function ($file_path, $prefix, $contents) {
27 /*
28 * There is currently no easy way to simply whitelist all global WordPress functions.
29 *
30 * This list here is a manual attempt after scanning through the AMP plugin, which means
31 * it needs to be maintained and kept in sync with any changes to the dependency.
32 *
33 * As long as there's no built-in solution in PHP-Scoper for this, an alternative could be
34 * to generate a list based on php-stubs/wordpress-stubs. devowlio/wp-react-starter/ seems
35 * to be doing just this successfully.
36 *
37 * @see https://github.com/humbug/php-scoper/issues/303
38 * @see https://github.com/php-stubs/wordpress-stubs
39 * @see https://github.com/devowlio/wp-react-starter/
40 */
41 $contents = \str_replace("\\{$prefix}\\_doing_it_wrong", '\\_doing_it_wrong', $contents);
42 $contents = \str_replace("\\{$prefix}\\__", '\\__', $contents);
43 $contents = \str_replace("\\{$prefix}\\esc_html_e", '\\esc_html_e', $contents);
44 $contents = \str_replace("\\{$prefix}\\esc_html", '\\esc_html', $contents);
45 $contents = \str_replace("\\{$prefix}\\esc_attr", '\\esc_attr', $contents);
46 $contents = \str_replace("\\{$prefix}\\esc_url", '\\esc_url', $contents);
47 $contents = \str_replace("\\{$prefix}\\do_action", '\\do_action', $contents);
48 $contents = \str_replace("\\{$prefix}\\site_url", '\\site_url', $contents);
49 $contents = \str_replace("\\{$prefix}\\wp_guess_url", '\\wp_guess_url', $contents);
50 $contents = \str_replace("\\{$prefix}\\untrailingslashit", '\\untrailingslashit', $contents);
51 $contents = \str_replace("\\{$prefix}\\WP_CONTENT_URL", '\\WP_CONTENT_URL', $contents);
52 $contents = \str_replace("\\{$prefix}\\wp_list_pluck", '\\wp_list_pluck', $contents);
53 $contents = \str_replace("\\{$prefix}\\is_customize_preview", '\\is_customize_preview', $contents);
54 $contents = \str_replace("\\{$prefix}\\do_action", '\\do_action', $contents);
55 $contents = \str_replace("\\{$prefix}\\trailingslashit", '\\trailingslashit', $contents);
56 $contents = \str_replace("\\{$prefix}\\get_template_directory_uri", '\\get_template_directory_uri', $contents);
57 $contents = \str_replace("\\{$prefix}\\get_stylesheet_directory_uri", '\\get_stylesheet_directory_uri', $contents);
58 $contents = \str_replace("\\{$prefix}\\includes_url", '\\includes_url', $contents);
59 $contents = \str_replace("\\{$prefix}\\wp_styles", '\\wp_styles', $contents);
60 $contents = \str_replace("\\{$prefix}\\get_stylesheet", '\\get_stylesheet', $contents);
61 $contents = \str_replace("\\{$prefix}\\get_template", '\\get_template', $contents);
62 $contents = \str_replace("\\{$prefix}\\wp_parse_url", '\\wp_parse_url', $contents);
63 $contents = \str_replace("\\{$prefix}\\is_wp_error", '\\is_wp_error', $contents);
64 $contents = \str_replace("\\{$prefix}\\content_url", '\\content_url', $contents);
65 $contents = \str_replace("\\{$prefix}\\get_admin_url", '\\get_admin_url', $contents);
66 $contents = \str_replace("\\{$prefix}\\WP_CONTENT_DIR", '\\WP_CONTENT_DIR', $contents);
67 $contents = \str_replace("\\{$prefix}\\ABSPATH", '\\ABSPATH', $contents);
68 $contents = \str_replace("\\{$prefix}\\wp_nonce_url", '\\wp_nonce_url', $contents);
69 $contents = \str_replace("\\{$prefix}\\WPINC", '\\WPINC', $contents);
70 $contents = \str_replace("\\{$prefix}\\home_url", '\\home_url', $contents);
71 $contents = \str_replace("\\{$prefix}\\__", '\\__', $contents);
72 $contents = \str_replace("\\{$prefix}\\wp_array_slice_assoc", '\\wp_array_slice_assoc', $contents);
73 $contents = \str_replace("\\{$prefix}\\wp_json_encode", '\\wp_json_encode', $contents);
74 $contents = \str_replace("\\{$prefix}\\get_transient", '\\get_transient', $contents);
75 $contents = \str_replace("\\{$prefix}\\wp_cache_get", '\\wp_cache_get', $contents);
76 $contents = \str_replace("\\{$prefix}\\set_transient", '\\set_transient', $contents);
77 $contents = \str_replace("\\{$prefix}\\wp_cache_set", '\\wp_cache_set', $contents);
78 $contents = \str_replace("\\{$prefix}\\wp_using_ext_object_cache", '\\wp_using_ext_object_cache', $contents);
79 $contents = \str_replace("\\{$prefix}\\_doing_it_wrong", '\\_doing_it_wrong', $contents);
80 $contents = \str_replace("\\{$prefix}\\plugin_dir_url", '\\plugin_dir_url', $contents);
81 $contents = \str_replace("\\{$prefix}\\is_admin_bar_showing", '\\is_admin_bar_showing', $contents);
82 $contents = \str_replace("\\{$prefix}\\get_bloginfo", '\\get_bloginfo', $contents);
83 $contents = \str_replace("\\{$prefix}\\add_filter", '\\add_filter', $contents);
84 $contents = \str_replace("\\{$prefix}\\add_action", '\\add_action', $contents);
85 $contents = \str_replace("\\{$prefix}\\apply_filters", '\\apply_filters', $contents);
86 $contents = \str_replace("\\{$prefix}\\add_query_arg", '\\add_query_arg', $contents);
87 $contents = \str_replace("\\{$prefix}\\remove_query_arg", '\\remove_query_arg', $contents);
88 $contents = \str_replace("\\{$prefix}\\get_post", '\\get_post', $contents);
89 $contents = \str_replace("\\{$prefix}\\wp_scripts", '\\wp_scripts', $contents);
90 $contents = \str_replace("\\{$prefix}\\wp_styles", '\\wp_styles', $contents);
91 $contents = \str_replace("\\{$prefix}\\wp_style_is", '\\wp_style_is', $contents);
92 $contents = \str_replace("\\{$prefix}\\WP_PLUGIN_URL", '\\WP_PLUGIN_URL', $contents);
93 $contents = \str_replace("\\{$prefix}\\WPMU_PLUGIN_URL", '\\WPMU_PLUGIN_URL', $contents);
94 $contents = \str_replace("\\{$prefix}\\wp_list_pluck", '\\wp_list_pluck', $contents);
95 $contents = \str_replace("\\{$prefix}\\wp_array_slice_assoc", '\\wp_array_slice_assoc', $contents);
96 $contents = \str_replace("\\{$prefix}\\wp_json_encode", '\\wp_json_encode', $contents);
97 $contents = \str_replace("\\{$prefix}\\WP_Http", '\\WP_Http', $contents);
98 $contents = \str_replace("\\{$prefix}\\WP_Error", '\\WP_Error', $contents);
99 $contents = \str_replace("\\{$prefix}\\MINUTE_IN_SECONDS", '\\MINUTE_IN_SECONDS', $contents);
100 $contents = \str_replace("\\{$prefix}\\wp_next_scheduled", '\\wp_next_scheduled', $contents);
101 $contents = \str_replace("\\{$prefix}\\wp_remote_post", '\\wp_remote_post', $contents);
102 $contents = \str_replace("\\{$prefix}\\wp_create_nonce", '\\wp_create_nonce', $contents);
103 $contents = \str_replace("\\{$prefix}\\admin_url", '\\admin_url', $contents);
104 $contents = \str_replace("\\{$prefix}\\check_ajax_referer", '\\check_ajax_referer', $contents);
105 $contents = \str_replace("\\{$prefix}\\wp_die", '\\wp_die', $contents);
106 $contents = \str_replace("\\{$prefix}\\wp_clear_scheduled_hook", '\\wp_clear_scheduled_hook', $contents);
107 $contents = \str_replace("\\{$prefix}\\wp_unschedule_event", '\\wp_unschedule_event', $contents);
108 $contents = \str_replace("\\{$prefix}\\wp_convert_hr_to_bytes", '\\wp_convert_hr_to_bytes', $contents);
109 $contents = \str_replace("\\{$prefix}\\maybe_unserialize", '\\maybe_unserialize', $contents);
110 $contents = \str_replace("\\{$prefix}\\delete_site_transient", '\\delete_site_transient', $contents);
111 $contents = \str_replace("\\{$prefix}\\set_site_transient", '\\set_site_transient', $contents);
112 $contents = \str_replace("\\{$prefix}\\get_site_transient", '\\get_site_transient', $contents);
113 $contents = \str_replace("\\{$prefix}\\is_multisite", '\\is_multisite', $contents);
114 $contents = \str_replace("\\{$prefix}\\update_site_option", '\\update_site_option', $contents);
115 $contents = \str_replace("\\{$prefix}\\delete_site_option", '\\delete_site_option', $contents);
116 $contents = \str_replace("\\{$prefix}\\wp_schedule_event", '\\wp_schedule_event', $contents);
117 return $contents;
118 }),
119 'exclude-files' => array(),
120 // list<string>
121 'exclude-namespaces' => array('WP2FA', 'Composer'),
122 // list<string|regex>
123 'exclude-constants' => array(),
124 // list<string|regex>
125 'exclude-classes' => array(),
126 // list<string|regex>
127 'exclude-functions' => array(),
128 // list<string|regex>
129 'whitelist' => array('add_action'),
130 );
131