? Pending

User tests: Successful: Unsuccessful:

avatar brianteeman
brianteeman
26 Apr 2021

Since PHP 7.0, some functions are replaced by opcodes, producing much faster code.
Yet, for this to work, these functions need to be referenced in the root namespace at compile time:
Either there is no namespace, or they are prefixed by a .

If accepted my plan is to do this for each component one at a time (easier to review)

Reference FriendsOfPHP/PHP-CS-Fixer#3048

avatar brianteeman brianteeman - open - 26 Apr 2021
avatar brianteeman brianteeman - change - 26 Apr 2021
Status New Pending
avatar joomla-cms-bot joomla-cms-bot - change - 26 Apr 2021
Category Administration
avatar PhilETaylor
PhilETaylor - comment - 26 Apr 2021

These kind of changes are best left to automation. Learn php-cs-fixer ;-)

Joomla 4 already has a php-cs-fixer configuration file.

https://github.com/joomla/joomla-cms/blob/staging/.php_cs

Should be as easy as adding native_function_invocation configuration and running php-cs-fixer fix

avatar brianteeman
brianteeman - comment - 26 Apr 2021

ok

avatar PhilETaylor
PhilETaylor - comment - 26 Apr 2021

add this:

'native_function_invocation' => true,

to the /.php_cs_.dist file

then run

php-cs-fixer fix

Loaded config default from "/Users/phil/Sites/JOOMLA/joomla4/.php_cs.dist".
Using cache file ".php_cs.cache".
   1) libraries/src/Tree/ImmutableNodeTrait.php
   2) libraries/src/Tree/NodeTrait.php
   3) libraries/src/Factory.php
   4) libraries/src/Pagination/Pagination.php
   5) libraries/src/Microdata/Microdata.php
   6) libraries/src/Form/FormHelper.php
   7) libraries/src/Form/FormField.php
   8) libraries/src/Form/Field/UsergrouplistField.php
   9) libraries/src/Form/Field/PasswordField.php
  10) libraries/src/Form/Field/DatabaseconnectionField.php
  11) libraries/src/Form/Field/ChromestyleField.php
  12) libraries/src/Form/Field/HiddenField.php
  13) libraries/src/Form/Field/AccessiblemediaField.php
  14) libraries/src/Form/Field/CategoryField.php
  15) libraries/src/Form/Field/FileField.php
  16) libraries/src/Form/Field/ModuletagField.php
  17) libraries/src/Form/Field/LimitboxField.php
  18) libraries/src/Form/Field/RangeField.php
  19) libraries/src/Form/Field/TransitionField.php
  20) libraries/src/Form/Field/MenuField.php
  21) libraries/src/Form/Field/AliastagField.php
  22) libraries/src/Form/Field/CachehandlerField.php
  23) libraries/src/Form/Field/ContentlanguageField.php
  24) libraries/src/Form/Field/ContenthistoryField.php
  25) libraries/src/Form/Field/WorkflowstageField.php
  26) libraries/src/Form/Field/MeterField.php
  27) libraries/src/Form/Field/UrlField.php
  28) libraries/src/Form/Field/MenuitemField.php
  29) libraries/src/Form/Field/NoteField.php
  30) libraries/src/Form/Field/ColorField.php
  31) libraries/src/Form/Field/ModulepositionField.php
  32) libraries/src/Form/Field/SqlField.php
  33) libraries/src/Form/Field/NumberField.php
  34) libraries/src/Form/Field/WorkflowComponentSectionsField.php
  35) libraries/src/Form/Field/CheckboxesField.php
  36) libraries/src/Form/Field/ComboField.php
  37) libraries/src/Form/Field/SubformField.php
  38) libraries/src/Form/Field/TemplatestyleField.php
  39) libraries/src/Form/Field/FilelistField.php
  40) libraries/src/Form/Field/CaptchaField.php
  41) libraries/src/Form/Field/OrderingField.php
  42) libraries/src/Form/Field/LanguageField.php
  43) libraries/src/Form/Field/RadioField.php
  44) libraries/src/Form/Field/SpacerField.php
  45) libraries/src/Form/Field/IntegerField.php
  46) libraries/src/Form/Field/ModuleorderField.php
  47) libraries/src/Form/Field/SessionhandlerField.php
  48) libraries/src/Form/Field/TimezoneField.php
  49) libraries/src/Form/Field/AuthorField.php
  50) libraries/src/Form/Field/EmailField.php
  51) libraries/src/Form/Field/RulesField.php
  52) libraries/src/Form/Field/CalendarField.php
  53) libraries/src/Form/Field/TextField.php
  54) libraries/src/Form/Field/FolderlistField.php
  55) libraries/src/Form/Field/EditorField.php
  56) libraries/src/Form/Field/UserField.php
  57) libraries/src/Form/Field/ComponentlayoutField.php
  58) libraries/src/Form/Field/ListField.php
  59) libraries/src/Form/Field/WorkflowconditionField.php
  60) libraries/src/Form/Field/GroupedlistField.php
  61) libraries/src/Form/Field/HeadertagField.php
  62) libraries/src/Form/Field/MediaField.php
  63) libraries/src/Form/Field/TagField.php
  64) libraries/src/Form/Field/TelephoneField.php
  65) libraries/src/Form/Field/ContenttypeField.php
  66) libraries/src/Form/Field/FrontendlanguageField.php
  67) libraries/src/Form/Field/PluginsField.php
  68) libraries/src/Form/Field/ModulelayoutField.php
  69) libraries/src/Form/Field/RadiobasicField.php
  70) libraries/src/Form/Field/TimeField.php
  71) libraries/src/Form/Field/AccesslevelField.php
  72) libraries/src/Form/Field/PredefinedlistField.php
  73) libraries/src/Form/Field/TextareaField.php
  74) libraries/src/Form/Field/ComponentsField.php
  75) libraries/src/Form/Rule/OptionsRule.php
  76) libraries/src/Form/Rule/SubformRule.php
  77) libraries/src/Form/Rule/ExistsRule.php
  78) libraries/src/Form/Rule/TimeRule.php
  79) libraries/src/Form/Rule/NotequalsRule.php
  80) libraries/src/Form/Rule/FilePathRule.php
  81) libraries/src/Form/Rule/PasswordRule.php
  82) libraries/src/Form/Rule/EqualsRule.php
  83) libraries/src/Form/Rule/UrlRule.php
  84) libraries/src/Form/Rule/TelRule.php
  85) libraries/src/Form/Rule/EmailRule.php
  86) libraries/src/Form/Rule/ColorRule.php
  87) libraries/src/Form/Rule/CssIdentifierRule.php
  88) libraries/src/Form/Rule/CalendarRule.php
  89) libraries/src/Form/FormRule.php
  90) libraries/src/Form/Filter/IntarrayFilter.php
  91) libraries/src/Form/Filter/UnsetFilter.php
  92) libraries/src/Form/Filter/TelFilter.php
  93) libraries/src/Form/Filter/UrlFilter.php
  94) libraries/src/Form/Form.php
  95) libraries/src/Association/AssociationExtensionHelper.php
  96) libraries/src/Serializer/JoomlaSerializer.php
  97) libraries/src/Serializer/Events/OnGetApiAttributes.php
  98) libraries/src/Extension/ExtensionManagerTrait.php
  99) libraries/src/Extension/ExtensionHelper.php
 100) libraries/src/Extension/LegacyComponent.php
 101) libraries/src/Extension/Module.php
 102) libraries/src/Response/JsonResponse.php
 103) libraries/src/Cache/Cache.php
 104) libraries/src/Cache/CacheStorage.php
 105) libraries/src/Cache/Storage/ApcuStorage.php
 106) libraries/src/Cache/Storage/WincacheStorage.php
 107) libraries/src/Cache/Storage/MemcachedStorage.php
 108) libraries/src/Cache/Storage/RedisStorage.php
 109) libraries/src/Cache/Storage/FileStorage.php
 110) libraries/src/Cache/Controller/ViewController.php
 111) libraries/src/Cache/Controller/CallbackController.php
 112) libraries/src/Cache/Controller/OutputController.php
 113) libraries/src/Cache/Controller/PageController.php
 114) libraries/src/Cache/CacheControllerFactory.php
 115) libraries/src/Cache/CacheController.php
 116) libraries/src/Access/Access.php
 117) libraries/src/Access/Rules.php
 118) libraries/src/Access/Rule.php
 119) libraries/src/MVC/Controller/AdminController.php
 120) libraries/src/MVC/Controller/ApiController.php
 121) libraries/src/MVC/Controller/FormController.php
 122) libraries/src/MVC/Controller/BaseController.php
 123) libraries/src/MVC/Model/FormBehaviorTrait.php
 124) libraries/src/MVC/Model/WorkflowBehaviorTrait.php
 125) libraries/src/MVC/Model/LegacyModelLoaderTrait.php
 126) libraries/src/MVC/Model/FormModel.php
 127) libraries/src/MVC/Model/AdminModel.php
 128) libraries/src/MVC/Model/ItemModel.php
 129) libraries/src/MVC/Model/ListModel.php
 130) libraries/src/MVC/Model/WorkflowModelInterface.php
 131) libraries/src/MVC/Model/BaseDatabaseModel.php
 132) libraries/src/MVC/Model/BaseModel.php
 133) libraries/src/MVC/View/JsonApiView.php
 134) libraries/src/MVC/View/FormView.php
 135) libraries/src/MVC/View/HtmlView.php
 136) libraries/src/MVC/View/AbstractView.php
 137) libraries/src/MVC/View/CategoriesView.php
 138) libraries/src/MVC/View/JsonView.php
 139) libraries/src/MVC/View/CategoryFeedView.php
 140) libraries/src/MVC/View/Event/OnGetApiFields.php
 141) libraries/src/MVC/View/CategoryView.php
 142) libraries/src/MVC/View/ListView.php
 143) libraries/src/MVC/Factory/MVCFactory.php
 144) libraries/src/MVC/Factory/LegacyFactory.php
 145) libraries/src/Changelog/Changelog.php
 146) libraries/src/Input/Json.php
 147) libraries/src/Input/Files.php
 148) libraries/src/Input/Cookie.php
 149) libraries/src/Input/Cli.php
 150) libraries/src/Input/Input.php
 151) libraries/src/UCM/UCMContent.php
 152) libraries/src/UCM/UCMType.php
 153) libraries/src/Crypt/Cipher/SodiumCipher.php
 154) libraries/src/Crypt/Crypt.php
 155) libraries/src/Mail/Mail.php
 156) libraries/src/Mail/MailTemplate.php
 157) libraries/src/Mail/language/phpmailer.lang-en_gb.php
 158) libraries/src/Mail/MailHelper.php
 159) libraries/src/WebAsset/WebAssetRegistryInterface.php
 160) libraries/src/WebAsset/WebAssetManager.php
 161) libraries/src/WebAsset/WebAssetRegistry.php
 162) libraries/src/WebAsset/WebAssetItem.php
 163) libraries/src/WebAsset/WebAssetManagerInterface.php
 164) libraries/src/WebAsset/Exception/InvalidActionException.php
 165) libraries/src/WebAsset/Exception/UnknownAssetException.php
 166) libraries/src/WebAsset/Exception/UnsatisfiedDependencyException.php
 167) libraries/src/Layout/BaseLayout.php
 168) libraries/src/Layout/FileLayout.php
 169) libraries/src/Date/Date.php
 170) libraries/src/Dispatcher/ComponentDispatcher.php
 171) libraries/src/Dispatcher/ModuleDispatcher.php
 172) libraries/src/Dispatcher/ApiDispatcher.php
 173) libraries/src/Dispatcher/LegacyComponentDispatcher.php
 174) libraries/src/Dispatcher/AbstractModuleDispatcher.php
 175) libraries/src/Dispatcher/ComponentDispatcherFactory.php
 176) libraries/src/Dispatcher/ModuleDispatcherFactory.php
 177) libraries/src/Toolbar/Toolbar.php
 178) libraries/src/Toolbar/Button/LinkButton.php
 179) libraries/src/Toolbar/Button/PopupButton.php
 180) libraries/src/Toolbar/Button/ConfirmButton.php
 181) libraries/src/Toolbar/Button/HelpButton.php
 182) libraries/src/Toolbar/Button/DropdownButton.php
 183) libraries/src/Toolbar/Button/CustomButton.php
 184) libraries/src/Toolbar/ToolbarButton.php
 185) libraries/src/Toolbar/ContainerAwareToolbarFactory.php
 186) libraries/src/Toolbar/ToolbarHelper.php
 187) libraries/src/Toolbar/CoreButtonsTrait.php
 188) libraries/src/Plugin/CMSPlugin.php
 189) libraries/src/Plugin/PluginHelper.php
 190) libraries/src/Component/ComponentHelper.php
 191) libraries/src/Component/Router/RouterView.php
 192) libraries/src/Component/Router/RouterFactory.php
 193) libraries/src/Component/Router/Rules/StandardRules.php
 194) libraries/src/Component/Router/Rules/MenuRules.php
 195) libraries/src/Component/Router/Rules/NomenuRules.php
 196) libraries/src/Component/Router/RouterLegacy.php
 197) libraries/src/Component/Router/RouterViewConfiguration.php
 198) libraries/src/HTML/Registry.php
 199) libraries/src/HTML/HTMLHelper.php
 200) libraries/src/HTML/Helpers/Email.php
 201) libraries/src/HTML/Helpers/Category.php
 202) libraries/src/HTML/Helpers/Access.php
 203) libraries/src/HTML/Helpers/AdminLanguage.php
 204) libraries/src/HTML/Helpers/UiTab.php
 205) libraries/src/HTML/Helpers/Number.php
 206) libraries/src/HTML/Helpers/ContentLanguage.php
 207) libraries/src/HTML/Helpers/Tag.php
 208) libraries/src/HTML/Helpers/User.php
 209) libraries/src/HTML/Helpers/SearchTools.php
 210) libraries/src/HTML/Helpers/Debug.php
 211) libraries/src/HTML/Helpers/Bootstrap.php
 212) libraries/src/HTML/Helpers/Grid.php
 213) libraries/src/HTML/Helpers/Menu.php
 214) libraries/src/HTML/Helpers/Icons.php
 215) libraries/src/HTML/Helpers/Date.php
 216) libraries/src/HTML/Helpers/ActionsDropdown.php
 217) libraries/src/HTML/Helpers/Select.php
 218) libraries/src/HTML/Helpers/Behavior.php
 219) libraries/src/HTML/Helpers/StringHelper.php
 220) libraries/src/HTML/Helpers/Links.php
 221) libraries/src/HTML/Helpers/Telephone.php
 222) libraries/src/HTML/Helpers/WorkflowStage.php
 223) libraries/src/HTML/Helpers/JGrid.php
 224) libraries/src/HTML/Helpers/Sidebar.php
 225) libraries/src/HTML/Helpers/ListHelper.php
 226) libraries/src/Updater/Update.php
 227) libraries/src/Updater/Adapter/CollectionAdapter.php
 228) libraries/src/Updater/Adapter/ExtensionAdapter.php
 229) libraries/src/Updater/UpdateAdapter.php
 230) libraries/src/Updater/Updater.php
 231) libraries/src/Language/Transliterate.php
 232) libraries/src/Language/Associations.php
 233) libraries/src/Language/LanguageHelper.php
 234) libraries/src/Language/Language.php
 235) libraries/src/Language/Text.php
 236) libraries/src/User/User.php
 237) libraries/src/User/UserHelper.php
 238) libraries/src/Filesystem/Streams/StreamString.php
 239) libraries/src/Filesystem/File.php
 240) libraries/src/Filesystem/Patcher.php
 241) libraries/src/Filesystem/Path.php
 242) libraries/src/Filesystem/Stream.php
 243) libraries/src/Filesystem/Folder.php
 244) libraries/src/Filesystem/FilesystemHelper.php
 245) libraries/src/Adapter/Adapter.php
 246) libraries/src/Document/Factory.php
 247) libraries/src/Document/DocumentRenderer.php
 248) libraries/src/Document/Document.php
 249) libraries/src/Document/Renderer/Html/ScriptsRenderer.php
 250) libraries/src/Document/Renderer/Html/StylesRenderer.php
 251) libraries/src/Document/Renderer/Html/ModulesRenderer.php
 252) libraries/src/Document/Renderer/Html/MessageRenderer.php
 253) libraries/src/Document/Renderer/Html/ModuleRenderer.php
 254) libraries/src/Document/Renderer/Html/MetasRenderer.php
 255) libraries/src/Document/Renderer/Feed/AtomRenderer.php
 256) libraries/src/Document/Renderer/Feed/RssRenderer.php
 257) libraries/src/Document/JsonDocument.php
 258) libraries/src/Document/OpensearchDocument.php
 259) libraries/src/Document/HtmlDocument.php
 260) libraries/src/Document/JsonapiDocument.php
 261) libraries/src/Document/ErrorDocument.php
 262) libraries/src/Captcha/Captcha.php
 263) libraries/src/Image/ImageFilter.php
 264) libraries/src/Image/Filter/Emboss.php
 265) libraries/src/Image/Filter/Backgroundfill.php
 266) libraries/src/Image/Filter/Contrast.php
 267) libraries/src/Image/Filter/Negate.php
 268) libraries/src/Image/Filter/Grayscale.php
 269) libraries/src/Image/Filter/Smooth.php
 270) libraries/src/Image/Filter/Brightness.php
 271) libraries/src/Image/Filter/Sketchy.php
 272) libraries/src/Image/Filter/Edgedetect.php
 273) libraries/src/Image/Image.php
 274) libraries/src/Schema/ChangeItem.php
 275) libraries/src/Schema/ChangeItem/SqlsrvChangeItem.php
 276) libraries/src/Schema/ChangeItem/MysqlChangeItem.php
 277) libraries/src/Schema/ChangeItem/PostgresqlChangeItem.php
 278) libraries/src/Schema/ChangeSet.php
 279) libraries/src/Button/FeaturedButton.php
 280) libraries/src/Button/PublishedButton.php
 281) libraries/src/Button/ActionButton.php
 282) libraries/src/Object/CMSObject.php
 283) libraries/src/Version.php
 284) libraries/src/Table/Category.php
 285) libraries/src/Table/CoreContent.php
 286) libraries/src/Table/Update.php
 287) libraries/src/Table/Nested.php
 288) libraries/src/Table/MenuType.php
 289) libraries/src/Table/ContentHistory.php
 290) libraries/src/Table/User.php
 291) libraries/src/Table/Content.php
 292) libraries/src/Table/ViewLevel.php
 293) libraries/src/Table/Menu.php
 294) libraries/src/Table/Module.php
 295) libraries/src/Table/ContentType.php
 296) libraries/src/Table/Language.php
 297) libraries/src/Table/UpdateSite.php
 298) libraries/src/Table/Extension.php
 299) libraries/src/Table/Table.php
 300) libraries/src/Table/Usergroup.php
 301) libraries/src/Table/Asset.php
 302) libraries/src/Http/Transport/SocketTransport.php
 303) libraries/src/Http/Transport/StreamTransport.php
 304) libraries/src/Http/Transport/CurlTransport.php
 305) libraries/src/Http/HttpFactory.php
 306) libraries/src/Feed/Feed.php
 307) libraries/src/Feed/FeedLink.php
 308) libraries/src/Feed/Parser/RssParser.php
 309) libraries/src/Feed/Parser/AtomParser.php
 310) libraries/src/Feed/FeedEntry.php
 311) libraries/src/Feed/FeedParser.php
 312) libraries/src/Feed/FeedFactory.php
 313) libraries/src/Workflow/WorkflowPluginTrait.php
 314) libraries/src/Workflow/WorkflowServiceTrait.php
 315) libraries/src/Workflow/Workflow.php
 316) libraries/src/Menu/AbstractMenu.php
 317) libraries/src/Menu/SiteMenu.php
 318) libraries/src/Menu/MenuFactory.php
 319) libraries/src/Environment/Browser.php
 320) libraries/src/Log/Logger/FormattedtextLogger.php
 321) libraries/src/Log/Logger/SyslogLogger.php
 322) libraries/src/Log/Logger/CallbackLogger.php
 323) libraries/src/Log/LogEntry.php
 324) libraries/src/Log/LoggerRegistry.php
 325) libraries/src/Log/Log.php
 326) libraries/src/Log/DelegatingPsrLogger.php
 327) libraries/src/Pathway/SitePathway.php
 328) libraries/src/Pathway/Pathway.php
 329) libraries/src/Profiler/Profiler.php
 330) libraries/src/String/PunycodeHelper.php
 331) libraries/src/Application/EventAware.php
 332) libraries/src/Application/AdministratorApplication.php
 333) libraries/src/Application/DaemonApplication.php
 334) libraries/src/Application/CMSApplication.php
 335) libraries/src/Application/SiteApplication.php
 336) libraries/src/Application/ApiApplication.php
 337) libraries/src/Application/CLI/CliInput.php
 338) libraries/src/Application/CLI/Output/Stdout.php
 339) libraries/src/Application/CLI/Output/Processor/ColorProcessor.php
 340) libraries/src/Application/CLI/Output/Xml.php
 341) libraries/src/Application/CLI/ColorStyle.php
 342) libraries/src/Application/WebApplication.php
 343) libraries/src/Application/CliApplication.php
 344) libraries/src/Application/ConsoleApplication.php
 345) libraries/src/Application/ApplicationHelper.php
 346) libraries/src/Filter/InputFilter.php
 347) libraries/src/Filter/OutputFilter.php
 348) libraries/src/Service/Provider/Authentication.php
 349) libraries/src/Service/Provider/Database.php
 350) libraries/src/Service/Provider/Session.php
 351) libraries/src/Service/Provider/Config.php
 352) libraries/src/Versioning/VersionableModelTrait.php
 353) libraries/src/Versioning/Versioning.php
 354) libraries/src/Installer/Adapter/TemplateAdapter.php
 355) libraries/src/Installer/Adapter/LibraryAdapter.php
 356) libraries/src/Installer/Adapter/ModuleAdapter.php
 357) libraries/src/Installer/Adapter/PackageAdapter.php
 358) libraries/src/Installer/Adapter/PluginAdapter.php
 359) libraries/src/Installer/Adapter/ComponentAdapter.php
 360) libraries/src/Installer/Adapter/FileAdapter.php
 361) libraries/src/Installer/Adapter/LanguageAdapter.php
 362) libraries/src/Installer/Manifest.php
 363) libraries/src/Installer/InstallerHelper.php
 364) libraries/src/Installer/InstallerAdapter.php
 365) libraries/src/Installer/InstallerScript.php
 366) libraries/src/Installer/Installer.php
 367) libraries/src/Encrypt/Totp.php
 368) libraries/src/Encrypt/RandValInterface.php
 369) libraries/src/Encrypt/Aes.php
 370) libraries/src/Encrypt/Base32.php
 371) libraries/src/Encrypt/Randval.php
 372) libraries/src/Encrypt/AES/Mcrypt.php
 373) libraries/src/Encrypt/AES/OpenSSL.php
 374) libraries/src/Encrypt/AES/AbstractAES.php
 375) libraries/src/Uri/Uri.php
 376) libraries/src/Helper/AuthenticationHelper.php
 377) libraries/src/Helper/RouteHelper.php
 378) libraries/src/Helper/ModuleHelper.php
 379) libraries/src/Helper/TagsHelper.php
 380) libraries/src/Helper/ContentHelper.php
 381) libraries/src/Helper/MediaHelper.php
 382) libraries/src/Helper/UserGroupsHelper.php
 383) libraries/src/Helper/HelperFactory.php
 384) libraries/src/Error/Renderer/JsonRenderer.php
 385) libraries/src/Error/Renderer/HtmlRenderer.php
 386) libraries/src/Error/Renderer/XmlRenderer.php
 387) libraries/src/Error/Renderer/JsonapiRenderer.php
 388) libraries/src/Error/AbstractRenderer.php
 389) libraries/src/Exception/ExceptionHandler.php
 390) libraries/src/Categories/CategoryFactory.php
 391) libraries/src/Categories/CategoryServiceTrait.php
 392) libraries/src/Categories/CategoryNode.php
 393) libraries/src/Categories/Categories.php
 394) libraries/src/Authentication/Password/Argon2iHandler.php
 395) libraries/src/Authentication/Password/PHPassHandler.php
 396) libraries/src/Authentication/Password/Argon2idHandler.php
 397) libraries/src/Authentication/Password/BCryptHandler.php
 398) libraries/src/Authentication/Password/MD5Handler.php
 399) libraries/src/Authentication/Authentication.php
 400) libraries/src/Event/AbstractImmutableEvent.php
 401) libraries/src/Event/AbstractEvent.php
 402) libraries/src/Event/WebAsset/WebAssetRegistryAssetChanged.php
 403) libraries/src/Event/Table/BeforePublishEvent.php
 404) libraries/src/Event/Table/AfterMoveEvent.php
 405) libraries/src/Event/Table/BeforeMoveEvent.php
 406) libraries/src/Event/Table/CheckEvent.php
 407) libraries/src/Event/Table/BeforeCheckoutEvent.php
 408) libraries/src/Event/Workflow/AbstractEvent.php
 409) libraries/src/Event/Workflow/WorkflowTransitionEvent.php
 410) libraries/src/Event/View/DisplayEvent.php
 411) libraries/src/Client/FtpClient.php
 412) libraries/src/Client/ClientHelper.php
 413) libraries/src/Tag/TagServiceTrait.php
 414) libraries/src/Editor/Editor.php
 415) libraries/src/Help/Help.php
 416) libraries/src/Console/SiteUpCommand.php
 417) libraries/src/Console/ExtensionDiscoverInstallCommand.php
 418) libraries/src/Console/SessionGcCommand.php
 419) libraries/src/Console/SiteDownCommand.php
 420) libraries/src/Console/FinderIndexCommand.php
 421) libraries/src/Console/AddUserCommand.php
 422) libraries/src/Console/ExtensionRemoveCommand.php
 423) libraries/src/Console/UpdateCoreCommand.php
 424) libraries/src/Console/ExtensionsListCommand.php
 425) libraries/src/Console/DeleteUserCommand.php
 426) libraries/src/Console/Loader/WritableContainerLoader.php
 427) libraries/src/Console/SessionMetadataGcCommand.php
 428) libraries/src/Console/RemoveOldFilesCommand.php
 429) libraries/src/Console/GetConfigurationCommand.php
 430) libraries/src/Console/ListUserCommand.php
 431) libraries/src/Console/SetConfigurationCommand.php
 432) libraries/src/Console/RemoveUserFromGroupCommand.php
 433) libraries/src/Console/AddUserToGroupCommand.php
 434) libraries/src/Console/ExtensionInstallCommand.php
 435) libraries/src/Utility/Utility.php
 436) libraries/src/Utility/BufferStreamHandler.php
 437) libraries/src/Session/Session.php
 438) libraries/src/Session/MetadataManager.php
 439) libraries/src/Session/Storage/JoomlaStorage.php
 440) libraries/src/Session/SessionFactory.php
 441) libraries/src/Router/SiteRouter.php
 442) libraries/src/Router/AdministratorRouter.php
 443) libraries/src/Router/Route.php
 444) libraries/src/Router/Router.php
 445) libraries/src/Router/ApiRouter.php
 446) libraries/loader.php
 447) libraries/namespacemap.php
 448) libraries/import.php
 449) libraries/extensions.classmap.php
 450) libraries/bootstrap.php
 451) libraries/cms.php
 452) libraries/import.legacy.php
 453) libraries/classmap.php

Fixed all files in 23.177 seconds, 18.000 MB memory used
avatar PhilETaylor
PhilETaylor - comment - 26 Apr 2021

If you dont have php-cs-fixer installed globally on your computer you might need to run it from

./libraries/vendor/bin/php-cs-fixer fix

avatar brianteeman
brianteeman - comment - 26 Apr 2021

Joomla 4 already has a php-cs-fixer configuration file.

You linked to the staging version ;)

In J4 branch it is https://github.com/joomla/joomla-cms/blob/4.0-dev/.php_cs.dist

avatar brianteeman brianteeman - change - 26 Apr 2021
Status Pending Closed
Closed_Date 0000-00-00 00:00:00 2021-04-26 08:41:21
Closed_By brianteeman
Labels Added: ?
avatar brianteeman brianteeman - close - 26 Apr 2021
avatar PhilETaylor
PhilETaylor - comment - 26 Apr 2021

yup - although the current config seems to only include the /libraries/ folder, it should be improved to cover the whole of Joomla, would be a very quick win for little effort.

avatar brianteeman
brianteeman - comment - 26 Apr 2021

yes - I realised that - thanks for the tip. learn something new every day

avatar PhilETaylor
PhilETaylor - comment - 26 Apr 2021

you will be amazed what it finds to fix ;-) nowadays in my own projects I dont care about how I actually type into phpStorm, I just let the automation sort it out before committing :)

For example, in Joomla 4 /components its going to find extra spaces which Drone is currently not erroring on :)

Screenshot 2021-04-26 at 09 45 59

Screenshot 2021-04-26 at 09 47 09

avatar PhilETaylor
PhilETaylor - comment - 26 Apr 2021

it will also fix aliases I never even knew existed (com_fields)

Screenshot 2021-04-26 at 09 47 45

avatar PhilETaylor
PhilETaylor - comment - 26 Apr 2021

and it will remove unneeded brackets without effecting the result of the code (com_finder)

Screenshot 2021-04-26 at 09 48 42

avatar PhilETaylor
PhilETaylor - comment - 26 Apr 2021

Also removed unneeded imports

Screenshot 2021-04-26 at 09 51 19

avatar brianteeman
brianteeman - comment - 26 Apr 2021

So why are we not running this on drone?

avatar PhilETaylor
PhilETaylor - comment - 26 Apr 2021

No idea. Its a fixer - not a reporter.

Once it doesnt just cover libraries, Devs should be running it before creating a PR, would save @Quy having to delete lines and spaces all the time :)

What would be good would be a Dev Tool for Joomla that ran this, unit tests and code style tests LOCALLY BEFORE git commit - a command devs could run before creating PRs - this would save so much time in reviewing PRs and remove the common mistakes, and stop PRs being submitted, failing drone, and having 10 "cs" commits to fix the issues.

Unfortunately the instructions for php-cs-fixers, unit testing and running code style checks locally are well hidden or non existing in docs.joomla.org

If I were you, and I had time, I would improve the configuration of phpcs, with native_function_invocation and including all the core Joomla folders and run it, and prepare a PR with the results. I would pretty much blindly trust the results - its rock solid (as is most things by Symfony devs). It then gives a baseline of quality to move forward with.

avatar PhilETaylor
PhilETaylor - comment - 26 Apr 2021

To run Code Style checks locally

./libraries/vendor/bin/phpcs --standard=libraries/vendor/joomla/cms-coding-standards/lib/Joomla-CMS /path/to/a/folder/or/file

or just this to run code style check on the whole Joomla repo

./libraries/vendor/bin/phpcs --standard=libraries/vendor/joomla/cms-coding-standards/lib/Joomla-CMS .
avatar brianteeman
brianteeman - comment - 26 Apr 2021

If I were you, and I had time,

I don't have the time but I do want to learn and save myself time in the future. So thats what I am looking at

avatar PhilETaylor
PhilETaylor - comment - 26 Apr 2021

I don't have the time

Nor me, paying work has to take over today.

avatar PhilETaylor
PhilETaylor - comment - 26 Apr 2021

To run unit tests locally:

./libraries/vendor/bin/phpunit 

or a specific subset of tests

./libraries/vendor/bin/phpunit tests/Unit/Libraries/Cms/Application
avatar brianteeman
brianteeman - comment - 26 Apr 2021

To run Code Style checks locally
./libraries/vendor/bin/phpcs --standard=libraries/vendor/joomla/cms-coding-standards/lib/Joomla-CMS .

Except did you see the list of files to exclude - ouch

avatar PhilETaylor
PhilETaylor - comment - 26 Apr 2021

As the comments say ?

<!-- These exceptions are temporary. Remove these exceptions as code style violations are fixed -->

LMAO...

Add a Comment

Login with GitHub to post a comment