%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
T3CON14EU: Migrating from TYPO3 CMS to TYPO3 Flow
1. Migrating from TYPO3 CMS
to TYPO3 Flow
10th International TYPO3 Conference, October 9th, Berlin
CC BY Serge Melki
https://www.flickr.com/photos/sergemelki/8156340258
Martin Helmich
m.helmich@mittwald.de
2.
3.
4. CC BY-SA Niteshift
http://commons.wikimedia.org/wiki/File:Balow_Kuhweide_2008-04-28_121.jpg
18. TYPO3 CMS
(Extbase)
TYPO3 Flow
class
Tx_MyExt_Domain_Model_Car
extends
Tx_Extbase_DomainObject_AbstractEntity
{
/**
*
@var
string
*
@validate
notempty
*/
protected
$licenseNumber;
/**
*
@var
Tx_MyExt_Domain_Model_Manufacturer
*/
protected
$manufacturer;
}
namespace
MyExtDomainModel;
use
TYPO3FlowAnnotations
as
Flow;
use
DoctrineORMMapping
as
ORM;
/**
*
@FlowEntity
*/
class
Car
{
/**
*
@var
string
*
@FlowValidate('NotEmpty')
*/
protected
$licenseNumber;
/**
*
@var
Manufacturer
*
@ORMManyToOne
*/
protected
$manufacturer;
}
19. TYPO3 CMS
(Extbase)
TYPO3 Flow
class
Tx_MyExt_Domain_Model_Car
extends
Tx_Extbase_DomainObject_AbstractEntity
{
/**
*
@var
string
*
@validate
notempty
*/
protected
$licenseNumber;
/**
*
@var
Tx_MyExt_Domain_Model_Manufacturer
*/
protected
$manufacturer;
}
namespace
MyExtDomainModel;
use
TYPO3FlowAnnotations
as
Flow;
use
DoctrineORMMapping
as
ORM;
/**
*
@FlowEntity
*/
class
Car
{
/**
*
@var
string
*
@FlowValidate('NotEmpty')
*/
protected
$licenseNumber;
/**
*
@var
Manufacturer
*
@ORMManyToOne
*/
protected
$manufacturer;
}
Namespacify classes
when necessary
20. TYPO3 CMS
(Extbase)
TYPO3 Flow
class
Tx_MyExt_Domain_Model_Car
extends
Tx_Extbase_DomainObject_AbstractEntity
{
/**
*
@var
string
*
@validate
notempty
*/
protected
$licenseNumber;
/**
*
@var
Tx_MyExt_Domain_Model_Manufacturer
*/
protected
$manufacturer;
}
namespace
MyExtDomainModel;
use
TYPO3FlowAnnotations
as
Flow;
use
DoctrineORMMapping
as
ORM;
/**
*
@FlowEntity
*/
class
Car
{
/**
*
@var
string
*
@FlowValidate('NotEmpty')
*/
protected
$licenseNumber;
/**
*
@var
Manufacturer
*
@ORMManyToOne
*/
protected
$manufacturer;
}
Determine domain object type
by class inheritance and add
annotation
21. TYPO3 CMS
(Extbase)
TYPO3 Flow
class
Tx_MyExt_Domain_Model_Car
extends
Tx_Extbase_DomainObject_AbstractEntity
{
/**
*
@var
string
*
@validate
notempty
*/
protected
$licenseNumber;
/**
*
@var
Tx_MyExt_Domain_Model_Manufacturer
*/
protected
$manufacturer;
}
namespace
MyExtDomainModel;
use
TYPO3FlowAnnotations
as
Flow;
use
Convert DoctrineORMannotations.
Mapping
as
ORM;
/**
*
@FlowEntity
*/
class
Car
{
/**
*
@var
string
*
@FlowValidate('NotEmpty')
*/
protected
$licenseNumber;
/**
*
@var
Manufacturer
*
@ORMManyToOne
*/
protected
$manufacturer;
}
22. TYPO3 CMS
(Extbase)
TYPO3 Flow
class
Tx_MyExt_Domain_Model_Car
extends
Tx_Extbase_DomainObject_AbstractEntity
{
/**
*
@var
string
*
@validate
notempty
*/
protected
$licenseNumber;
/**
*
@var
Tx_MyExt_Domain_Model_Manufacturer
*/
protected
$manufacturer;
}
namespace
MyExtDomainModel;
use
TYPO3FlowAnnotations
as
Flow;
use
DoctrineORMMapping
as
ORM;
/**
*
@FlowEntity
*/
class
Car
{
/**
Determine association
cardinality from TCA
*
@var
string
*
@FlowValidate('NotEmpty')
*/
protected
$licenseNumber;
/**
*
@var
Manufacturer
*
@ORMManyToOne
*/
protected
$manufacturer;
}
23. some other stuff to think about
Convert locallang
to XLIFF
create doctrine
migrations
from ext_tables.sql
domain models
extending TYPO3 classes
usage of TYPO3 APIs
(aka. the infamous t3lib_div)
different value object
handling