[Part 2]
Essential Solutions
for TYPO3 Productivity
by Sanjay Chauhan at T3DD19
sanjay_nitsan
What are essentials TYPO3 solutions?
TYPO3 Code Review
TYPO3 Server Compatibility Check
TYPO3 Extensions Maintenance
Useful TYPO3 Extensions
Sanjay Chauhan
Co-Founder and CTO at NITSAN Technologies
NITSAN Technologies
Dedicated TYPO3 Agency since 2011
Server Compatibility
Hassle - free TYPO3 server compatibility check report
TYPO3 Version Server Compatibility
Manually check server
Find tech info for each T3.version
Check T3 version compatibility
Check database connection
Check email services
phpinfo() Report
Introduce: ns_typo3_compatibility
TYPO3 Version Server Compatibility
Check Database Connection
Check Email Service
phpinfo() Report
Setup - Test - Fix
Useful TER Extensions
Cool free-TYPO3 extensions to save your time!
NITSAN’s Contribution at TER
20+ Extensions are developed and published (and in-progress)
150+ Tickets resolved by supporting and maintaining
20000+ Downloaded and Installed
1500+ Hours spent for the development and maintenance
500+ Chai and Samosas
Comments for EXT:news
Feature-rich & Easy to use comment tool for news extension
News Comment Form
News Comments Listing
Nested Reply Form
Store comment at every News
Approve/Reject Moderate Comments
Frontend Plugin
Frontend User Configuration
Frontend User Can Comment
Download, Feedback and Support
composer req nitsan/ns-news-comments
extensions.typo3.org/extension/ns_news_comments
github.com/nitsan-technologies/ns_news_comments/issues
Maintenance Mode
Do you want to make your site temporary offline like Coming soon?
Frontend Maintenance Template
Backend Configuration
Download, Feedback and Support
composer req nitsan/nitsan-maintenance
extensions.typo3.org/extension/nitsan_maintenance
github.com/nitsan-technologies/nitsan_maintenance/issues
All in One Slider Plugin
Quickly install and configure your favourite OpenSource Sliders
Includes Major OpenSource Plugin
Owlcarousel Slider
Nivo Slider
Royal Slider
Slidejs Slider
Slick Slider
Suggest your favourite OS Slider
Preview Slider Example
Create Slider’s Records
Frontend Plugin
Each Slider’s Configuration
Download, Feedback and Support
composer req nitsan/ns-all-sliders
extensions.typo3.org/extension/ns_all_sliders
github.com/nitsan-technologies/ns_all_sliders/issues
All In One Lightbox/Modalbox
Quickly install and configure your favourite Open Source Lightbox
Includes Major Open Source Plugin
Lightbox2
Fancybox2
Colorbox
Prettyphoto
Darkbox
Magnific-popup
Suggest your favourite OS Plugin
Preview example of Lightbox
Backend Configuration
Frontend Plugin
Download, Feedback and Support
composer req nitsan/ns-all-lightbox
extensions.typo3.org/extension/ns_all_lightbox
github.com/nitsan-technologies/ns_all_lightbox/issues
TYPO3 Code Review
Follow standards lints PHP/TypoScript/Fluid/Yaml/Xliff
Code Review For:
PHP PSR Standards
TypoScript
Fluid Templates
YAML Configuration
XLIFF Localization
Any Other Suggestions?
Integrate into Git CI (like Gitlab, Github)
Sample .gitlab-ci.yaml
Error logs
PHP Lint
sudo apt install php-codesniffer
phpcs --standard=PSR2 ext_localconf.php
phpcs --standard=PSR2 ./
phpcs --standard=PSR2 --warning-severity=0 --extensions=php *
PHP Lint
TypoScript Lint
composer global require helmich/typo3-typoscript-lint
.config/composer/vendor/bin/typoscript-lint -c tslint.yaml
paths:
- Configuration/PageTSconfig
- Configuration/TypoScript
filePatterns:
- "*.ts"
TypoScript Lint
Fluid Lint
composer global require typo3fluid/fluid-lint:dev-master
.config/composer/vendor/bin/fluidlint Templates/Default.html
* Fluid 3 will have better linting
Fluid Lint
YAML Lint
sudo apt install python-pip
sudo pip install yamllint==1.10.0
yamllint -d relaxed .
YAML Lint
XLIFF Lint
composer global require symfony/translation
php bin/console lint:xliff default.xliff
php bin/console lint:xliff /Resources/Private/Language
XLIFF Lint
EditorConfig.org
Maintain consistent coding styles for multiple developers
Setup .editorconfig at root of your project
Define coding style standards
Plugins available for your favourite IDE
.editorconfig
Maintain TYPO3 Extensions
Easily publish and maintain your TER and Private TYPO3 Extensions
TYPO3 Extensions Repository (TER)
Our App Store is Called TER - and It's Free! - TYPO3 GmbH
Tools and Techniques
Git (github/gitlab/bitbucket etc.)
Cool Composer
Sync Packagist (org/com)
Proper Versioning
Automatic Deployment to TER
Code Review
Prepare your extension for Composer
Revolutionary one-line composer command eg.,
composer require nitsan/ns-news-comments
Composer.json
Git Survey
How many people uses Github?
How many people uses Gitlab?
How many people uses Other Git?
Code versioning with (hub/lab/bitbucket)
Submit Git repo at Packagist (org/com)
How Packagist and Git will communicate?
Packagist + Github
Packagist + Gitlab
Maintain Proper Versions
Semantic Versioning 2.0.0
1. ext_emconf.php
2. Git version release
3. Composer/Packagist version
Dependencies Management
Publish Extensions to TER
Easily publish and maintain your TER and Private TYPO3 Extensions
Publishing Extension to TER
Directly publish to TYPO3.org
NamelessCoder Release Service
Automatic publish through Git CI
Option 1: Direct publish at TER
Option 2: release.namelesscoder.net
create/push tag
git tag 1.2.3
git push origin 1.2.3
Option 3: Gitlab to TER (.gitlab-ci.yaml)
Option 4: Github/Travis to TER (travis.yml)
Checklist for Ideal Extension Development
Practice with Docker and DDEV
Use Versioning with Git
Code Review / Lints
Follow TYPO3 Coding Guidelines
Use PHPStorm IDE
Install Composer
Deployment with Git CI
Check Performance
Any Questions?
Thank you!
Let’s keep in touch :)
www.nitsan.in
sanjay@nitsan.in
sanjay.nitsan
sanjay-nitsan
sanjay.nitsan