Make Pibase extension compatible to TYPO3 6.2.x

1) Remove the line starting with “require_once”, that includes TYPO3 core files
For Ex:
require_once(PATH_tslib.’class.tslib_pibase.php’);
require_once(PATH_t3lib.’class.t3lib_tsparser.php’);

But keep the “require_once” line that includes custom class from current extension
For Ex:
require_once (PATH_site.”/typo3conf/ext/myextension/library/class.mylibclass.php”);

2. Download the TYPO3 source, in my case I am referring to TYPO3 6.2.2
Open the file “typo3-6.2.2\sysext\core\Migrations\Code\LegacyClassesForIde.php”.

This file has very important information regarding migrations.

3. Open the pi1.php file of the extension that you are going to update.

4. Replace the class names by referring to LegacyClassesForIde.php of TYPO3 core.
For Ex:
Replace “tslib_pibase” with “\TYPO3\CMS\Frontend\Plugin\AbstractPlugin”.
To do this, search for “tslib_pibase” on “LegacyClassesForIde.php” and replace with the part next to “extends”
“abstract class tslib_pibase extends \TYPO3\CMS\Frontend\Plugin\AbstractPlugin {}”

So
“class tx_myextension_pi1 extends tslib_pibase {”
becomes
“class tx_myextension_pi1 extends \TYPO3\CMS\Frontend\Plugin\AbstractPlugin {”

5. Similarly replace “t3lib_div” with “\TYPO3\CMS\Core\Utility\GeneralUtility”.
We can do search and replace all occurrences.

6. Similarly replace “t3lib_extMgm” with “\TYPO3\CMS\Core\Utility\ExtensionManagementUtility”
and repeat this step until all the replacement availabilities are replaced.

7. And for custom class inclusions, replace
require_once (PATH_site.”/typo3conf/ext/myextension/library/class.mylibclass.php”);
with
require_once(\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath(‘myextension’).’library/class.mylibclass.php’);
“PATH_site” may not work in some cases.

8. Replace
t3lib_div::makeInstance(‘t3lib_TSparser’);
with
\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(‘TYPO3\\CMS\\Core\\TypoScript\\Parser\\TypoScriptParser’);
The paths comes in quotes should have double back slashes.

9. Remove the line
t3lib_div::loadTCA(“tt_content”);
that may be there in ext_tables.php
In TYPO3 6.2 version, all TCA are auto loaded. So we need not load again.