[open source news]https://www.oschina.net/news/…
Today is a very special date. Here we will announce an important news to you. The official version of queryphp 1.0, which is completely rewritten, has been released!
Php-m is a progressive framework for PHP engineers, and it is a good historical framework for every PHP application.
100% unit testing covers bugs, and is committed to creating high-quality products level level leevel. Relying on swote, it opens up more possibilities in the future. At the moment, the future will gradually evolve. Our vision isUSE LEEVEL WITH SWOOLE DO BETTER, so that your business can support more user services.
- Production ready
- Framework concept (a sense of mission worthy of trust, so that every PHP application has a good framework. )
- Component system (the bottom layer of the framework is composed of independent high cohesion and low coupling components, which can easily and non invasively access the existing system. )
- Routing system (the framework provides MVC automatic routing, and can intelligently parse restful requests and swagger PHP annotation routing based on OpenAPI 3.0 specification. Document routing is completed in one step. )
- The overall solution (the framework provides a large number of out of the box functions such as cache, session, IOC container, template engine, DDD ORM, etc., and provides the symfony console based command line tool set. )
- High quality (100% unit testing covers bugs directly, and is committed to creating high-quality products level level lever. )
- (4) we need to develop a small amount of business code based on our business vision. )
- 100% unit test coverage (more than 3500 test cases ensure system reliability and sustainable maintenance.)
- Every PHP strict script is_ Types = 1, strict mode can avoid potential bugs caused by many weak types.)
- PHP 7 type hint (provide certain parameter type and return value type for each method as far as possible, as well as type support for class properties.)
- Dependency injection (complete implementation, all key MVC, command-line script and event listener are connected to IOC container.)
- Domain Driven Design (supports unitofwork transaction work unit, repository repository, specification query specification, entity getter setter, domain entity, etc.)
- Queryphp has been absorbing some excellent designs from larravel, symfony and other frameworks. At the same time, we have also carried out a lot of innovative designs. )
- More features look forward to your discovery
Before launching queryphp, I tried to release an open source framework as early as October 2010DoYouHaoBabyBut the early user experience and quality of the code are very poor. Later, based on this framework to do some applications, such asDYHB.BLOGAnd the communityWindsForceIn fact, some bugs and designs of the framework are verified through these specific applications, and the later story is that all development is stopped.
In November 2013, I started my first job and went to work. Slowly, I had less time and less mood to do some amateur projects. Later, there was only a little regret left in my heart, and there was no more tossing heart. In addition, I wanted to go out in the second half of 2014, often went out to sing and play, and when I came back, I played dota again. So it took two years.
Back in August 2016, I had to play dota every day when I came back from work. When I had a good time, it would be late at night. At that time, I was looking for the first opportunity of refactoring in youhaby. Slowly found some feelings, also slowly changed the game, began a new journey.
Alpha. 1 release
After two years of intermittent development, the first version was soon released, and queryphp 1.0.0-alpha. 1 was released《Progressive PHP resident framework engine》。 The first version took two years, mainly to learn from the previous failure experience, hoping to spend more time on the design, to avoid repeated refactoring in the later stage.
When I read the development history news of Vue and larravel in the early years, I started to write a large number of unit test cases at a very early stage, so I connected to travel CI in the middle of 2017, and wrote a large number of unit test cases through phpunit to ensure reliable product delivery. When the first alpha. 1 version, the test cases of the whole framework exceeded 2000. Because the effect is very good, we put forward a slogan “100% unit test coverage to face bugs”. We use craftsmanship spirit to make a pure work. Product documents, technical debts, planned functions and test cases need to be task-based, and the quality control is implemented in every small step.
“Craftsman spirit” encourages enterprises to carry out personalized customization and flexible production, cultivate the craftsman spirit of excellence, increase varieties, improve quality and create brands.
In order to better deliver the products, queryphp is gradually pushed forward in a strict way. It will be polished one by one, ranging from copywriting and code typesetting to interface user experience. The final design is well presented. We are committed to creating high-quality products, level level leevel. Quality control has been throughout the whole process of product development.
- V1.0.0-ga 22 July 2020
- V1.0.0-rc. 6, 18 April 2020
- V1.0.0-rc. 5, February 8, 2020
- V1.0.0-rc. 4, January 20, 2020
- V1.0.0-rc. 3, December 26, 2019
- V1.0.0-rc. 2, November 24, 2019
- V1.0.0-rc. 1, November 6, 2019
- V1.0.0-beta. 6, October 16, 2019
- V1.0.0-beta. 5, September 9, 2019
- V1.0.0-beta. 4, July 28, 2019
- V1.0.0-beta. 3, June 6, 2019
- V1.0.0-beta. 2, May 20, 2019
- V1.0.0-beta. 1, April 14, 2019
- V1.0.0-alpha. 3, March 13, 2019
- V1.0.0-alpha. 2, 12 December 2018
- V1.0.0-alpha. 1, November 8, 2018
- First line of code August 2016
About performance and scenarios
We still focus on traditional php-fpm scenarios, which are the core of our entire product, and 99% of our components do not rely on swote. A lot of the time, that’s enough, more powerful than we think.
With the help of swote, more possibilities can be opened in the future. The whole framework can be run in the swote service. At present, one click collaboration cannot be closed. At present, it supports HTTP and websocket, which can meet some of your development requirements, and is also a key support direction for us in the future. It supports MySQL and redis connection pool, which can be used better.
In particular, I would like to recommend go Roadrunner to run your PHP application as opposed to swoole. Golang accepts psr-7 requests and is responsible for managing PHP resident processes running in cli mode to avoid the performance overhead caused by framing. The company is a company with PHP and golang as the main languages. According to their news, it can bring about 15 times improvement in actual projects with good compatibility. At present, queryphp has been supported and will be improved in this direction in the future.
I’m also working on some golang and rust directions. I can choose these other languages to improve performance and expand scenarios.
To create enterprise oriented products, as little as possible destructive update, for the enterprise development lick brick and tile. In the future, we will optimize the user experience and write more boundary tests in order to improve the reliability of the products.
In order to simplify the entry, we developed a general background permission system based on iView UI, which can run in the mode of traditional php-fpm, swoole and Roadrunner 3.
composer create-project hunzhiwange/queryphp myapp
php leevel server <Visite http://127.0.0.1:9527/>
It runs in swote mode
php leevel http:server <Visite http://127.0.0.1:9527/>
Go Roadrunner mode
/data/server/roadrunner-1.8.2-darwin-amd64/rr serve -d -v # -d = debug <Visite http://127.0.0.1:9527/>
Running general permission system based on iviewui
npm run dev
php leevel server
If you feel good, you can pay attention to the project, thank you.
Email: [email protected]