PHP Frameworks
Overall System
- Bucket testing ready
- End-to-End performance (X-Perf in http header)
- Unique Request ID
- Application flow testing (測試買場,測試帳號,測試 Promotion 設定)
Coding Style
- PSR-1: Basic Coding Standard
- PSR-2: Coding Style Guide
- PSR-3: Logger Interface
- PSR-4: Autoloader
- PSR-6: Caching Interface
- PSR-7: HTTP message interfaces
- Php Fixer
API Layer - HHVM
- PHP7 strict types
declare(strict_types=1);
- Hack Language
- Slim
Frontend Layer
- CI
- YAF
- symfony component
- Laravel
PHP - API Document
- swagger
PHP - mySQL DB
- ext\/mysqli
- Prepare statement
- supports non-blocking, asynchronous queries with mysqlnd
- Driver: mysqllnd
Timestamp
- Use ISO-8601, 2012-01-18T11:45:00+00:00
Traffic Splitter
- Apache traffic server
- Nginx
RPC
- Thrift (not recommended)
Non-blocking I/O
- ReactPHP
- swoole
DevBox
- Vagrant
- docker
Monitor
- Zabbix + shell scripts
- Splunk
Deploy
Log
Queue
- RabbitMQ
Browser - View
- React.js (not recommended , too few ppl known this.)
- Vue
Browser - CSS
- Atom (**http:\/\/acss.io**)
- SASS ( recommended)
- LESS
Browser - JS
- JQuery 3.1
API merged
- reactPHP\/promise
- GraphQL
API layer → add on start \/ after \/ count \/ fields param.
- Function : paging, count , cursor position …
Package management
- Build company’s packagist and composer
- How to sync in house and public packages in the same packagist?
- Solution: satis
- https:\/\/getcomposer.org\/doc\/articles\/handling-private-packages-with-satis.md
HTTP2 server push for image
- CDN: Azure and AWS
Cache
Testing
- All testing engineers should be interviewed by SDET team
- Java test framework with Selenium is preferred but OK with PHP
- Request Selenium + Cucumber for automation test framework
- Functions in all systems, sub Systems, API, mobile app & web should be all automated.
- An access to their Testing Environment is required
- CI\/CD set up is required
- Code developed in each sprint should be sync up with EIT
- Test cases with execution status are required daily
- Need to clarify who is responsible for real devices – Pad and smart phone
- Test plan is required but EIT will provide template
- Mobile app testing framework - Appium
- Mobile app performance testing framework - Monkey ( TBD )
- Performance testing - TSUNG ( in Erlang )
Other Useful Libraray
- Neo4jGraph Database
- Google Charts