Commit 2bd4674
authored
Modernize codebase: namespaces, autoloader, folder structure (#306)
* Modernize codebase: namespaces, autoloader, folder structure
Refactor the entire plugin to use PHP namespaces, a PSR-4-ish autoloader,
and a proper folder structure following the wordpress-activitypub pattern.
- Add `IndieAuth` root namespace with autoloader
- Organize classes into `rest/`, `token/`, `scope/`, `ticket/`, `wp-admin/`
- REST controllers extend WP_REST_Controller with $namespace/$rest_base
- Singleton main class (IndieAuth\IndieAuth) with get_instance()/init()
- Centralized hook registration in main class
- Settings refactored with Settings_Fields class and clean template
- Backward-compatible global API functions in functions-api.php
- Tests restructured to mirror source layout with Test_ prefix
* Fix PHPCS violations
- Add doc comments to backward-compat wrapper functions
- Fix alignment and spacing issues (auto-fixed by phpcbf)
* Add missing backward-compat function wrappers
All namespaced utility functions (find_rels, url_to_author, pkce_verifier,
base64_urlencode, normalize_url, build_url, add_query_params_to_url,
rest_is_valid_url, get_oauth_error, is_oauth_error,
wp_error_to_oauth_response) now have global wrappers in functions-api.php.
* Fix PHP 7.2 compatibility and test failures
- Defer builtin scope registration to init hook via Scopes::init()
while creating the Scopes instance early so map_meta_cap filter works
- Revert phpunit.xml.dist to <filter><whitelist> format for PHPUnit 8
* Raise minimum PHP version to 7.4
Update CI matrix, composer.json, and PHPCS config to match the
Requires PHP: 7.4 already declared in the plugin header.
* Defer component initialization to init hook at priority 2
Move Authorize, Scopes, Web_Signin, and other component creation to the
init hook (priority 2) matching the original plugin behavior. This fixes
test failures where creating a new Authorize instance in tests conflicted
with an already-registered instance from early plugin load.
* Address Copilot review feedback
- Align refresh token prefix in cleanup with the rest of the codebase
(_indieauth_refresh_) so scheduled cleanup actually expires refresh tokens
- Return a proper boolean from Admin::test_auth() via a success flag in the
authdiag JSON response, so the Site Health test no longer always passes
- Escape the settings page link with esc_url()/admin_url() and wp_kses()
- Call scopes() directly instead of wrapping the void return in esc_html()
- Use $this-> instead of self:: for the non-static generate_local_token()
* Fix Test_Authorize failures on PHP 7.4
Renaming the test class to Test_Authorize made its test_authorize() method a
PHP4-style constructor on PHP < 8.0, bypassing the PHPUnit TestCase
constructor and erroring every test in the class. Rename the method to
test_authorize_with_access_token().1 parent e73fb29 commit 2bd4674
51 files changed
Lines changed: 2757 additions & 2027 deletions
File tree
- includes
- rest
- scope
- ticket
- token
- wp-admin
- templates
- tests/phpunit/tests/includes
- rest
- token
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 35 additions & 31 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
8 | 12 | | |
9 | 13 | | |
10 | 14 | | |
11 | 15 | | |
12 | 16 | | |
13 | 17 | | |
14 | 18 | | |
15 | | - | |
| 19 | + | |
16 | 20 | | |
17 | 21 | | |
18 | 22 | | |
19 | 23 | | |
20 | | - | |
| 24 | + | |
21 | 25 | | |
22 | 26 | | |
23 | 27 | | |
| |||
58 | 62 | | |
59 | 63 | | |
60 | 64 | | |
61 | | - | |
62 | | - | |
| 65 | + | |
| 66 | + | |
63 | 67 | | |
64 | | - | |
65 | | - | |
66 | | - | |
67 | | - | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
68 | 72 | | |
69 | 73 | | |
70 | 74 | | |
71 | 75 | | |
72 | 76 | | |
73 | 77 | | |
74 | | - | |
75 | | - | |
76 | | - | |
77 | | - | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
78 | 82 | | |
79 | 83 | | |
80 | 84 | | |
81 | 85 | | |
82 | 86 | | |
83 | 87 | | |
84 | | - | |
| 88 | + | |
85 | 89 | | |
86 | 90 | | |
87 | 91 | | |
| |||
98 | 102 | | |
99 | 103 | | |
100 | 104 | | |
101 | | - | |
| 105 | + | |
102 | 106 | | |
103 | 107 | | |
104 | 108 | | |
| |||
137 | 141 | | |
138 | 142 | | |
139 | 143 | | |
140 | | - | |
141 | | - | |
| 144 | + | |
| 145 | + | |
142 | 146 | | |
143 | 147 | | |
144 | | - | |
| 148 | + | |
145 | 149 | | |
146 | 150 | | |
147 | 151 | | |
148 | 152 | | |
149 | | - | |
| 153 | + | |
150 | 154 | | |
151 | 155 | | |
152 | 156 | | |
| |||
193 | 197 | | |
194 | 198 | | |
195 | 199 | | |
196 | | - | |
| 200 | + | |
197 | 201 | | |
198 | | - | |
| 202 | + | |
199 | 203 | | |
200 | 204 | | |
201 | 205 | | |
| |||
217 | 221 | | |
218 | 222 | | |
219 | 223 | | |
220 | | - | |
| 224 | + | |
221 | 225 | | |
222 | 226 | | |
223 | | - | |
| 227 | + | |
224 | 228 | | |
225 | 229 | | |
226 | 230 | | |
227 | 231 | | |
228 | 232 | | |
229 | | - | |
| 233 | + | |
230 | 234 | | |
231 | 235 | | |
232 | 236 | | |
| |||
278 | 282 | | |
279 | 283 | | |
280 | 284 | | |
281 | | - | |
| 285 | + | |
282 | 286 | | |
283 | 287 | | |
284 | 288 | | |
| |||
290 | 294 | | |
291 | 295 | | |
292 | 296 | | |
293 | | - | |
| 297 | + | |
294 | 298 | | |
295 | 299 | | |
296 | 300 | | |
297 | 301 | | |
298 | 302 | | |
299 | | - | |
| 303 | + | |
300 | 304 | | |
301 | | - | |
| 305 | + | |
302 | 306 | | |
303 | 307 | | |
304 | 308 | | |
305 | 309 | | |
306 | 310 | | |
307 | 311 | | |
308 | 312 | | |
309 | | - | |
| 313 | + | |
310 | 314 | | |
311 | 315 | | |
312 | 316 | | |
| |||
318 | 322 | | |
319 | 323 | | |
320 | 324 | | |
321 | | - | |
| 325 | + | |
322 | 326 | | |
323 | 327 | | |
324 | 328 | | |
325 | 329 | | |
326 | 330 | | |
327 | | - | |
| 331 | + | |
328 | 332 | | |
329 | | - | |
| 333 | + | |
330 | 334 | | |
331 | 335 | | |
332 | 336 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
0 commit comments