Skip to content

PHP Archive for finding the old Joomla (< 3.8) class names

License

Notifications You must be signed in to change notification settings

skurvish/joomla-namespace-checker

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Joomla Namespace Checker (JNSC)

For migrating to Joomla 3.8.x

This script scans a directory recursively for PHP files containing calls to the old classes (e.g. JFactory).

Requirements

  • PHP 7.x

Usage

Using Composer

Add the package to your composer.json

composer require --dev vortrixs/joomla-namespace-checker

Afterwards you can run it using

vendor/bin/jnsc path/to/your/project/

This should work as long as PHP is in your $PATH.

If this does not work you can always execute the PHAR directly

php vendor/vortrixs/joomla-namespace-checker/bin/jnsc.phar

Using the PHAR

Download the PHAR from the latest release and run it like so

$ php jnsc.phar path/to/your/project

If any calls are found you will get the following output:

FILE: path/to/your/project/someFile.php
-------------------------------------------------------------------------------------
Line: 12 | Class found: JTable        | Replace with: Joomla\CMS\Table\Table
Line: 21 | Class found: JPlugin       | Replace with: Joomla\CMS\Plugin\CMSPlugin
Line: 47 | Class found: JPluginHelper | Replace with: Joomla\CMS\Plugin\PluginHelper
Line: 56 | Class found: JFactory      | Replace with: Joomla\CMS\Factory
Line: 75 | Class found: JPluginHelper | Replace with: Joomla\CMS\Plugin\PluginHelper
Line: 84 | Class found: JFactory      | Replace with: Joomla\CMS\Factory
-------------------------------------------------------------------------------------

Excluding paths & files

Pass the --exclude option to exclude directories and files.

$ php jnsc.phar --exclude=/somepath/,somefile.php,some/other/path/ path/to/your/project

The exclusion is very basic so you might have to tweak the paths a bit, this also means wildcards like * are not supported.

e.g. if you pass --exclude=google, it will filter out anything that has google in it's path or filename.

To reliably filter out a whole directory wrap it in / / and for single files use filename.ext.

About

PHP Archive for finding the old Joomla (< 3.8) class names

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%