From 6109d60496ec55989be1068a069afc7cbbce249a Mon Sep 17 00:00:00 2001 From: Daniel Martin Date: Mon, 6 Jul 2015 13:43:11 -0400 Subject: [PATCH 01/21] Use (?s) option in RewriteRules The reason for doing this is that apparently some Apache binaries are distributed linked to a PCRE library that considers character 0x85 a new line like character. On such Apache instances, the redirect rules without (?s) will not work for URLs containing characters that have a 0x85 byte in their UTF-8 expansion. --- .htaccess | 4 ++-- public/.htaccess | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.htaccess b/.htaccess index a4cbb93..b88bba0 100755 --- a/.htaccess +++ b/.htaccess @@ -1,5 +1,5 @@ RewriteEngine on RewriteRule ^$ public/ [L] - RewriteRule (.*) public/$1 [L] - \ No newline at end of file + RewriteRule ((?s).*) public/$1 [L] + diff --git a/public/.htaccess b/public/.htaccess index 7a9d6fe..5fe17fa 100755 --- a/public/.htaccess +++ b/public/.htaccess @@ -3,5 +3,5 @@ AddDefaultCharset UTF-8 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f - RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L] + RewriteRule ^((?s).*)$ index.php?_url=/$1 [QSA,L] From dc8895e8c17afdb5ab042b4b1e958d95ae15acd4 Mon Sep 17 00:00:00 2001 From: Serghei Iakovlev Date: Wed, 5 Aug 2015 21:25:19 +0300 Subject: [PATCH 02/21] Updated docs --- .gitignore | 1 + README.md | 24 ++++++++++++++++-------- docs/LICENSE.md | 13 +++++++++++++ docs/LICENSE.txt | 26 ++++++++++++++++++++++++++ 4 files changed, 56 insertions(+), 8 deletions(-) create mode 100644 docs/LICENSE.md create mode 100644 docs/LICENSE.txt diff --git a/.gitignore b/.gitignore index 5c7ec6d..1fc1b3b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ +.idea .DS_Store public/.DS_Store diff --git a/README.md b/README.md index c47a55c..1f9666b 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,29 @@ -Phalcon Tutorial -================ +# Phalcon Tutorial Phalcon is a web framework for PHP delivered as a C extension providing high performance and lower resource consumption. This is a very simple tutorial to understand the basis of work with Phalcon. -Check out a explanation article: http://docs.phalconphp.com/en/latest/reference/tutorial.html +Check out a [explanation article][1]. -Get Started ------------ +## Get Started -#### Requirements +### Requirements To run this application on your machine, you need at least: * PHP >= 5.4 -* Apache Web Server with mod rewrite enabled -* Phalcon Framework extension enabled (>= 2.0.0) +* [Apache][2] Web Server with [mod_rewrite][3] enabled or [Nginx][4] Web Server +* Latest stable [Phalcon Framework release][5] extension enabled +## License + +Phalcon Tutorial is open-sourced software licensed under the [New BSD License][6]. © Phalcon Framework Team and contributors + +[1]: http://docs.phalconphp.com/en/latest/reference/tutorial.html +[2]: http://httpd.apache.org/ +[3]: http://httpd.apache.org/docs/current/mod/mod_rewrite.html +[4]: http://nginx.org/ +[5]: https://github.com/phalcon/cphalcon/releases +[6]: https://github.com/phalcon/tutorial/blob/master/docs/LICENSE.md diff --git a/docs/LICENSE.md b/docs/LICENSE.md new file mode 100644 index 0000000..bfc6075 --- /dev/null +++ b/docs/LICENSE.md @@ -0,0 +1,13 @@ +New BSD License +=============== + +Copyright (c) 2013-2015, Phalcon Framework Team and contributors +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. +* Neither the name of the nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/docs/LICENSE.txt b/docs/LICENSE.txt new file mode 100644 index 0000000..2232f8e --- /dev/null +++ b/docs/LICENSE.txt @@ -0,0 +1,26 @@ +New BSD License + +Copyright (c) 2013-2015, Phalcon Framework Team and contributors +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. From 73c9d832809e85cb964418c406e0cb6c6d166143 Mon Sep 17 00:00:00 2001 From: Sid Roberts Date: Sat, 10 Sep 2016 15:48:21 +0100 Subject: [PATCH 03/21] Updated index.php to reflect documentation. --- public/index.php | 91 +++++++++++++++++++++++++----------------------- 1 file changed, 47 insertions(+), 44 deletions(-) diff --git a/public/index.php b/public/index.php index 296a030..8bf296e 100755 --- a/public/index.php +++ b/public/index.php @@ -1,61 +1,64 @@ registerDirs( - array( - '../app/controllers/', - '../app/models/' - ) - )->register(); - - // Create a DI - $di = new FactoryDefault(); - - // Set the database service - $di['db'] = function() { - return new DbAdapter(array( - "host" => "localhost", - "username" => "root", - "password" => "secret", - "dbname" => "tutorial" - )); - }; - - // Setting up the view component - $di['view'] = function() { + +// Register an autoloader +$loader = new Loader(); + +$loader->registerDirs( + [ + "../app/controllers/", + "../app/models/", + ] +); + +$loader->register(); + + + +// Create a DI +$di = new FactoryDefault(); + +// Setup the view component +$di->set( + "view", + function () { $view = new View(); - $view->setViewsDir('../app/views/'); + + $view->setViewsDir("../app/views/"); + return $view; - }; + } +); + +// Setup a base URI so that all generated URIs include the "tutorial" folder +$di->set( + "url", + function () { + $url = new UrlProvider(); + + $url->setBaseUri("/tutorial/"); - // Setup a base URI so that all generated URIs include the "tutorial" folder - $di['url'] = function() { - $url = new Url(); - $url->setBaseUri('/tutorial/'); return $url; - }; + } +); - // Setup the tag helpers - $di['tag'] = function() { - return new Tag(); - }; - // Handle the request - $application = new Application($di); - echo $application->handle()->getContent(); +$application = new Application($di); + +try { + // Handle the request + $response = $application->handle(); -} catch (Exception $e) { - echo "Exception: ", $e->getMessage(); + $response->send(); +} catch (\Exception $e) { + echo "Exception: ", $e->getMessage(); } From 4047ca0e1e3c3b3a957f0ac5a6d3924964ebf471 Mon Sep 17 00:00:00 2001 From: Paul Scarrone Date: Sat, 12 Aug 2017 22:42:09 -0400 Subject: [PATCH 04/21] Revise tutorial project to match documentation --- .htrouter.php | 29 +++++++++++++ .phalcon/.gitkeep | 0 README.md | 8 +++- app/models/Users.php | 2 - app/views/index/index.phtml | 1 - docs/LICENSE.md | 2 +- docs/LICENSE.txt | 2 +- public/index.php | 86 +++++++++++++++++-------------------- schemas/tutorial.sql | 11 ++--- 9 files changed, 83 insertions(+), 58 deletions(-) create mode 100644 .htrouter.php create mode 100644 .phalcon/.gitkeep diff --git a/.htrouter.php b/.htrouter.php new file mode 100644 index 0000000..effc318 --- /dev/null +++ b/.htrouter.php @@ -0,0 +1,29 @@ + | + | Eduar Carvajal | + | Serghei Iakovlev | + +------------------------------------------------------------------------+ +*/ + +define('PUBLIC_PATH', __DIR__ . '/public'); + +$uri = urldecode(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)); +if ($uri !== '/' && file_exists(PUBLIC_PATH . $uri)) { + return false; +} +$_GET['_url'] = $_SERVER['REQUEST_URI']; + +require_once PUBLIC_PATH . '/index.php'; diff --git a/.phalcon/.gitkeep b/.phalcon/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/README.md b/README.md index 1f9666b..df79eb5 100644 --- a/README.md +++ b/README.md @@ -14,16 +14,20 @@ Check out a [explanation article][1]. To run this application on your machine, you need at least: * PHP >= 5.4 -* [Apache][2] Web Server with [mod_rewrite][3] enabled or [Nginx][4] Web Server +* Server Any of the following + * [Phalcon Devtools][7] using provided **.htrouter** and `phalcon serve` command + * [Apache][2] Web Server with [mod_rewrite][3] enabled + * [Nginx][4] Web Server * Latest stable [Phalcon Framework release][5] extension enabled ## License Phalcon Tutorial is open-sourced software licensed under the [New BSD License][6]. © Phalcon Framework Team and contributors -[1]: http://docs.phalconphp.com/en/latest/reference/tutorial.html +[1]: https://docs.phalconphp.com/en/latest/tutorial-base [2]: http://httpd.apache.org/ [3]: http://httpd.apache.org/docs/current/mod/mod_rewrite.html [4]: http://nginx.org/ [5]: https://github.com/phalcon/cphalcon/releases [6]: https://github.com/phalcon/tutorial/blob/master/docs/LICENSE.md +[7]: https://github.com/phalcon/phalcon-devtools diff --git a/app/models/Users.php b/app/models/Users.php index 7e9e3f4..287e26a 100644 --- a/app/models/Users.php +++ b/app/models/Users.php @@ -6,9 +6,7 @@ class Users extends Model { public $id; - public $name; - public $email; } diff --git a/app/views/index/index.phtml b/app/views/index/index.phtml index 1882ce8..d485dbc 100644 --- a/app/views/index/index.phtml +++ b/app/views/index/index.phtml @@ -3,4 +3,3 @@ echo "

Hello!

"; echo $this->tag->linkTo("signup", "Sign Up Here!"); - diff --git a/docs/LICENSE.md b/docs/LICENSE.md index bfc6075..28fa8fa 100644 --- a/docs/LICENSE.md +++ b/docs/LICENSE.md @@ -1,7 +1,7 @@ New BSD License =============== -Copyright (c) 2013-2015, Phalcon Framework Team and contributors +Copyright (c) 2013-2017, Phalcon Framework Team and contributors All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: diff --git a/docs/LICENSE.txt b/docs/LICENSE.txt index 2232f8e..7d5e552 100644 --- a/docs/LICENSE.txt +++ b/docs/LICENSE.txt @@ -1,6 +1,6 @@ New BSD License -Copyright (c) 2013-2015, Phalcon Framework Team and contributors +Copyright (c) 2013-2017, Phalcon Framework Team and contributors All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/public/index.php b/public/index.php index 296a030..22a4d75 100755 --- a/public/index.php +++ b/public/index.php @@ -1,61 +1,55 @@ registerDirs( + array( + APP_PATH . '/controllers/', + APP_PATH . '/models/' + ) +)->register(); + +// Create a DI +$di = new FactoryDefault(); + +// Setting up the view component +$di['view'] = function() { + $view = new View(); + $view->setViewsDir(APP_PATH . '/views/'); + return $view; +}; + +// Setup a base URI so that all generated URIs include the "tutorial" folder +$di['url'] = function() { + $url = new Url(); + $url->setBaseUri('/'); + return $url; +}; + +// Set the database service +$di['db'] = function() { + return new DbAdapter(array( + "host" => "127.0.0.1", + "username" => "root", + "password" => "secret", + "dbname" => "tutorial1" + )); +}; + +// Handle the request try { - - // Register an autoloader - $loader = new Loader(); - $loader->registerDirs( - array( - '../app/controllers/', - '../app/models/' - ) - )->register(); - - // Create a DI - $di = new FactoryDefault(); - - // Set the database service - $di['db'] = function() { - return new DbAdapter(array( - "host" => "localhost", - "username" => "root", - "password" => "secret", - "dbname" => "tutorial" - )); - }; - - // Setting up the view component - $di['view'] = function() { - $view = new View(); - $view->setViewsDir('../app/views/'); - return $view; - }; - - // Setup a base URI so that all generated URIs include the "tutorial" folder - $di['url'] = function() { - $url = new Url(); - $url->setBaseUri('/tutorial/'); - return $url; - }; - - // Setup the tag helpers - $di['tag'] = function() { - return new Tag(); - }; - - // Handle the request $application = new Application($di); - echo $application->handle()->getContent(); - } catch (Exception $e) { echo "Exception: ", $e->getMessage(); } diff --git a/schemas/tutorial.sql b/schemas/tutorial.sql index 44f6f06..4f41c68 100644 --- a/schemas/tutorial.sql +++ b/schemas/tutorial.sql @@ -1,6 +1,6 @@ -- MySQL dump 10.13 Distrib 5.5.36, for osx10.9 (i386) -- --- Host: localhost Database: tutorial +-- Host: localhost Database: tutorial1 -- ------------------------------------------------------ -- Server version 5.5.36 @@ -23,10 +23,11 @@ DROP TABLE IF EXISTS `users`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `users` ( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `name` varchar(70) NOT NULL, - `email` varchar(70) NOT NULL, - PRIMARY KEY (`id`) + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(70) NOT NULL, + `email` varchar(70) NOT NULL, + + PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; From 0c0ef31c2276aa38e6fb76c626dc4590f5e4e724 Mon Sep 17 00:00:00 2001 From: Paul Scarrone Date: Sun, 13 Aug 2017 16:58:05 -0400 Subject: [PATCH 05/21] Update index.php --- public/index.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/public/index.php b/public/index.php index f0033b6..30b2a3d 100755 --- a/public/index.php +++ b/public/index.php @@ -1,11 +1,11 @@ setBaseUri('/'); return $url; }; From 17a293679cc380d7ddf3a59c76d2bfeefd44be4c Mon Sep 17 00:00:00 2001 From: Nikolaos Dimopoulos Date: Mon, 12 Nov 2018 11:48:06 -0500 Subject: [PATCH 06/21] Added boxfile for nanobox; Added storage folder; Using nanobox db --- .htrouter.php | 29 --------------- app/controllers/IndexController.php | 8 ++--- app/controllers/SignupController.php | 54 ++++++++++++++-------------- app/models/Users.php | 8 ++--- app/views/signup/index.phtml | 24 ++++++------- boxfile.yml | 28 +++++++++++++++ public/index.php | 29 +++++++-------- schemas/tutorial.sql | 52 --------------------------- storage/ci/import_db.sh | 6 ++++ storage/ci/xdebug.ini | 24 +++++++++++++ storage/schemas/tutorial.sql | 10 ++++++ 11 files changed, 127 insertions(+), 145 deletions(-) delete mode 100644 .htrouter.php create mode 100644 boxfile.yml delete mode 100644 schemas/tutorial.sql create mode 100755 storage/ci/import_db.sh create mode 100644 storage/ci/xdebug.ini create mode 100644 storage/schemas/tutorial.sql diff --git a/.htrouter.php b/.htrouter.php deleted file mode 100644 index effc318..0000000 --- a/.htrouter.php +++ /dev/null @@ -1,29 +0,0 @@ - | - | Eduar Carvajal | - | Serghei Iakovlev | - +------------------------------------------------------------------------+ -*/ - -define('PUBLIC_PATH', __DIR__ . '/public'); - -$uri = urldecode(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)); -if ($uri !== '/' && file_exists(PUBLIC_PATH . $uri)) { - return false; -} -$_GET['_url'] = $_SERVER['REQUEST_URI']; - -require_once PUBLIC_PATH . '/index.php'; diff --git a/app/controllers/IndexController.php b/app/controllers/IndexController.php index 6aeb3a7..d982266 100644 --- a/app/controllers/IndexController.php +++ b/app/controllers/IndexController.php @@ -5,9 +5,7 @@ class IndexController extends Controller { - public function indexAction() - { - - } - + public function indexAction() + { + } } diff --git a/app/controllers/SignupController.php b/app/controllers/SignupController.php index 66ba828..f3a78cc 100644 --- a/app/controllers/SignupController.php +++ b/app/controllers/SignupController.php @@ -5,32 +5,30 @@ class SignupController extends Controller { - public function indexAction() - { - - } - - public function registerAction() - { - - $user = new Users(); - - // Store and check for errors - $success = $user->save( - $this->request->getPost(), - array('name', 'email') - ); - - if ($success) { - echo "Thanks for registering!"; - } else { - echo "Sorry, the following problems were generated: "; - foreach ($user->getMessages() as $message) { - echo $message->getMessage(), "
"; - } - } - - $this->view->disable(); - } - + public function indexAction() + { + } + + public function registerAction() + { + + $user = new Users(); + + // Store and check for errors + $success = $user->save( + $this->request->getPost(), + ['name', 'email'] + ); + + if ($success) { + echo "Thanks for registering!"; + } else { + echo "Sorry, the following problems were generated: "; + foreach ($user->getMessages() as $message) { + echo $message->getMessage(), "
"; + } + } + + $this->view->disable(); + } } diff --git a/app/models/Users.php b/app/models/Users.php index 287e26a..5d0a972 100644 --- a/app/models/Users.php +++ b/app/models/Users.php @@ -4,9 +4,7 @@ class Users extends Model { - - public $id; - public $name; - public $email; - + public $id; + public $name; + public $email; } diff --git a/app/views/signup/index.phtml b/app/views/signup/index.phtml index 714b41f..d81f45a 100644 --- a/app/views/signup/index.phtml +++ b/app/views/signup/index.phtml @@ -2,18 +2,18 @@ tag->form('signup/register') ?> -

- - tag->textField("name") ?> -

+

+ + tag->textField("name") ?> +

-

- - tag->textField("email") ?> -

+

+ + tag->textField("email") ?> +

-

- tag->submitButton("Register") ?> -

+

+ tag->submitButton("Register") ?> +

- +tag->endForm() ?> diff --git a/boxfile.yml b/boxfile.yml new file mode 100644 index 0000000..b60c8e4 --- /dev/null +++ b/boxfile.yml @@ -0,0 +1,28 @@ +run.config: + engine: php + engine.config: + runtime: php-7.2 + extensions: + - pdo + - pdo_mysql + - session + - simplexml + - tokenizer + - xmlwriter + zend_extensions: + - opcache + dev_zend_extensions: + add: + - xdebug + rm: + - opcache + extra_packages: + - mysql-client + - php72-phalcon-3.3.2 + extra_steps: + - echo 'extension=phalcon.so' >> "/data/etc/php/dev_php.ini" + - echo 'extension=phalcon.so' >> "/data/etc/php/prod_php.ini" + - cp /app/storage/ci/xdebug.ini /data/etc/php.dev.d/xdebug.ini + +data.mysql: + image: nanobox/mysql:5.7 diff --git a/public/index.php b/public/index.php index 30b2a3d..6a8a172 100755 --- a/public/index.php +++ b/public/index.php @@ -13,37 +13,38 @@ // Register an autoloader $loader = new Loader(); $loader->registerDirs( - array( + [ APP_PATH . '/controllers/', - APP_PATH . '/models/' - ) -)->register(); + APP_PATH . '/models/', + ] +)->register() +; // Create a DI $di = new FactoryDefault(); // Setting up the view component -$di['view'] = function() { +$di['view'] = function () { $view = new View(); $view->setViewsDir(APP_PATH . '/views/'); return $view; }; // Setup a base URI so that all generated URIs include the "tutorial" folder -$di['url'] = function() { +$di['url'] = function () { $url = new UrlProvider(); $url->setBaseUri('/'); return $url; }; // Set the database service -$di['db'] = function() { - return new DbAdapter(array( - "host" => "127.0.0.1", - "username" => "root", - "password" => "secret", - "dbname" => "tutorial1" - )); +$di['db'] = function () { + return new DbAdapter([ + "host" => getenv('DATA_MYSQL_HOST'), + "username" => getenv('DATA_MYSQL_USER'), + "password" => getenv('DATA_MYSQL_PASS'), + "dbname" => "gonano", + ]); }; // Handle the request @@ -51,5 +52,5 @@ $application = new Application($di); echo $application->handle()->getContent(); } catch (Exception $e) { - echo "Exception: ", $e->getMessage(); + echo "Exception: ", $e->getMessage(); } diff --git a/schemas/tutorial.sql b/schemas/tutorial.sql deleted file mode 100644 index 4f41c68..0000000 --- a/schemas/tutorial.sql +++ /dev/null @@ -1,52 +0,0 @@ --- MySQL dump 10.13 Distrib 5.5.36, for osx10.9 (i386) --- --- Host: localhost Database: tutorial1 --- ------------------------------------------------------ --- Server version 5.5.36 - -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8 */; -/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; -/*!40103 SET TIME_ZONE='+00:00' */; -/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; -/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; -/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; - --- --- Table structure for table `users` --- - -DROP TABLE IF EXISTS `users`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `users` ( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `name` varchar(70) NOT NULL, - `email` varchar(70) NOT NULL, - - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `users` --- - -LOCK TABLES `users` WRITE; -/*!40000 ALTER TABLE `users` DISABLE KEYS */; -/*!40000 ALTER TABLE `users` ENABLE KEYS */; -UNLOCK TABLES; -/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; - -/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; -/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; -/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; -/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; - --- Dump completed on 2014-08-26 14:20:40 diff --git a/storage/ci/import_db.sh b/storage/ci/import_db.sh new file mode 100755 index 0000000..8993e95 --- /dev/null +++ b/storage/ci/import_db.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +mysql --user=$DATA_MYSQL_USER \ + --password=$DATA_MYSQL_PASS \ + --host=$DATA_MYSQL_HOST \ + gonano < /app/storage/schemas/tutorial.sql diff --git a/storage/ci/xdebug.ini b/storage/ci/xdebug.ini new file mode 100644 index 0000000..217bbf2 --- /dev/null +++ b/storage/ci/xdebug.ini @@ -0,0 +1,24 @@ +xdebug.coverage_enable = 1 +xdebug.default_enable = 1 +xdebug.extended_info = 1 +xdebug.force_display_errors = 0 +xdebug.force_error_reporting = 0 +xdebug.max_nesting_level = 256 +xdebug.profiler_enable = 1 +xdebug.profiler_enable_trigger = 1 +xdebug.profiler_output_dir = "/tmp" +xdebug.remote_autostart = 0 +xdebug.remote_connect_back = 1 +xdebug.remote_cookie_expire_time = 3600 +xdebug.remote_enable = 1 +xdebug.remote_handler = "dbgp" +xdebug.remote_host = "localhost" +xdebug.remote_log = "" +xdebug.remote_mode = "req" +xdebug.remote_port = 9090 +xdebug.show_error_trace = 1 +xdebug.show_exception_trace = 1 +xdebug.show_local_vars = 1 +xdebug.var_display_max_children = 128 +xdebug.var_display_max_data = 512 +xdebug.var_display_max_depth = 3 diff --git a/storage/schemas/tutorial.sql b/storage/schemas/tutorial.sql new file mode 100644 index 0000000..21a2219 --- /dev/null +++ b/storage/schemas/tutorial.sql @@ -0,0 +1,10 @@ +DROP TABLE IF EXISTS `users`; +CREATE TABLE `users` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(70) NOT NULL, + `email` varchar(70) NOT NULL, + + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +INSERT INTO `users` (`name`, `email`) VALUES ('Phalcon Team', 'team@phalconphp.com'); \ No newline at end of file From 34a024b5f9c00cd556c292753bc083a2c7c6dd33 Mon Sep 17 00:00:00 2001 From: Nikolaos Dimopoulos Date: Mon, 12 Nov 2018 11:53:15 -0500 Subject: [PATCH 07/21] Update for README --- README.md | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index df79eb5..a6450a8 100644 --- a/README.md +++ b/README.md @@ -13,13 +13,21 @@ Check out a [explanation article][1]. To run this application on your machine, you need at least: -* PHP >= 5.4 +* PHP >= 7+ * Server Any of the following - * [Phalcon Devtools][7] using provided **.htrouter** and `phalcon serve` command * [Apache][2] Web Server with [mod_rewrite][3] enabled * [Nginx][4] Web Server * Latest stable [Phalcon Framework release][5] extension enabled +You can also run the application using [nanobox.io][8]. Installation instructions for nanobox can be found [here][9]. + +## Running the application +* Clone the repository to a folder on your machine +* Navigate to that folder +* Run `nanobox run` +* After the application compiles you will see `/app $` in your terminal. Type `php-server` to run apache +* Navigate to the IP address displayed in the console. + ## License Phalcon Tutorial is open-sourced software licensed under the [New BSD License][6]. © Phalcon Framework Team and contributors @@ -31,3 +39,5 @@ Phalcon Tutorial is open-sourced software licensed under the [New BSD License][6 [5]: https://github.com/phalcon/cphalcon/releases [6]: https://github.com/phalcon/tutorial/blob/master/docs/LICENSE.md [7]: https://github.com/phalcon/phalcon-devtools +[8]: https://nanobox.io +[9]: https://docs.nanobox.io/install/ \ No newline at end of file From 3309aeb7736a68b9dacc78596a3b19177d033f84 Mon Sep 17 00:00:00 2001 From: emiliodeg Date: Thu, 15 Nov 2018 10:49:35 -0300 Subject: [PATCH 08/21] Updated Phalcon version --- boxfile.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boxfile.yml b/boxfile.yml index b60c8e4..30aa3ef 100644 --- a/boxfile.yml +++ b/boxfile.yml @@ -18,7 +18,7 @@ run.config: - opcache extra_packages: - mysql-client - - php72-phalcon-3.3.2 + - php72-phalcon-3.4.1 extra_steps: - echo 'extension=phalcon.so' >> "/data/etc/php/dev_php.ini" - echo 'extension=phalcon.so' >> "/data/etc/php/prod_php.ini" From 3869174ba042cb67a932c65075480ec80ecd4719 Mon Sep 17 00:00:00 2001 From: emiliodeg Date: Thu, 15 Nov 2018 10:50:50 -0300 Subject: [PATCH 09/21] Modified SignupController to pass vars into view Added users list Added some styles --- app/controllers/IndexController.php | 5 ++++- app/controllers/SignupController.php | 21 +++++++++++-------- app/views/index.phtml | 13 ++++++++++++ app/views/index/index.phtml | 30 +++++++++++++++++++++++++++- app/views/signup/index.phtml | 2 +- app/views/signup/register.phtml | 5 +++++ public/index.php | 3 +-- 7 files changed, 66 insertions(+), 13 deletions(-) create mode 100644 app/views/index.phtml create mode 100644 app/views/signup/register.phtml diff --git a/app/controllers/IndexController.php b/app/controllers/IndexController.php index d982266..af1d3f7 100644 --- a/app/controllers/IndexController.php +++ b/app/controllers/IndexController.php @@ -4,8 +4,11 @@ class IndexController extends Controller { - + /** + * Welcome and user list + */ public function indexAction() { + $this->view->users = Users::find(); } } diff --git a/app/controllers/SignupController.php b/app/controllers/SignupController.php index f3a78cc..a457d4e 100644 --- a/app/controllers/SignupController.php +++ b/app/controllers/SignupController.php @@ -4,14 +4,18 @@ class SignupController extends Controller { - + /** + * Show form to register a new user + */ public function indexAction() { } + /** + * Register new user and show message + */ public function registerAction() { - $user = new Users(); // Store and check for errors @@ -20,15 +24,16 @@ public function registerAction() ['name', 'email'] ); + // passing the result to the view + $this->view->success = $success; + if ($success) { - echo "Thanks for registering!"; + $message = "Thanks for registering!"; } else { - echo "Sorry, the following problems were generated: "; - foreach ($user->getMessages() as $message) { - echo $message->getMessage(), "
"; - } + $message = "Sorry, the following problems were generated:
" . implode('
', $user->getMessages()); } - $this->view->disable(); + // passing a message to the view + $this->view->message = $message; } } diff --git a/app/views/index.phtml b/app/views/index.phtml new file mode 100644 index 0000000..0c8c08a --- /dev/null +++ b/app/views/index.phtml @@ -0,0 +1,13 @@ + + + + + Phalcon Tutorial + + + +
+ getContent(); ?> +
+ + \ No newline at end of file diff --git a/app/views/index/index.phtml b/app/views/index/index.phtml index d485dbc..8709946 100644 --- a/app/views/index/index.phtml +++ b/app/views/index/index.phtml @@ -2,4 +2,32 @@ echo "

Hello!

"; -echo $this->tag->linkTo("signup", "Sign Up Here!"); +echo $this->tag->linkTo(["signup", "Sign Up Here!", 'class' => 'btn btn-primary']); + +if ($users->count() > 0) { + ?> + + + + + + + + + + + + + + + + + + + + + + +
#NameEmail
Users quantity: count(); ?>
id; ?>name; ?>email; ?>
+

- tag->submitButton("Register") ?> + tag->submitButton(["Register", 'class' => 'btn btn-primary']) ?>

tag->endForm() ?> diff --git a/app/views/signup/register.phtml b/app/views/signup/register.phtml new file mode 100644 index 0000000..7273e68 --- /dev/null +++ b/app/views/signup/register.phtml @@ -0,0 +1,5 @@ +
+ +
+ +tag->linkTo(['/', 'Go back', 'class' => 'btn btn-primary']); ?> \ No newline at end of file diff --git a/public/index.php b/public/index.php index 6a8a172..86fdec2 100755 --- a/public/index.php +++ b/public/index.php @@ -17,8 +17,7 @@ APP_PATH . '/controllers/', APP_PATH . '/models/', ] -)->register() -; +)->register(); // Create a DI $di = new FactoryDefault(); From 1ef0556ea15c8c3decf616365eefa5544fd785f2 Mon Sep 17 00:00:00 2001 From: Michael Butler Date: Sun, 14 Mar 2021 16:10:19 -0400 Subject: [PATCH 10/21] Fix link to tutorial guide --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a6450a8..ee47bae 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ You can also run the application using [nanobox.io][8]. Installation instruction Phalcon Tutorial is open-sourced software licensed under the [New BSD License][6]. © Phalcon Framework Team and contributors -[1]: https://docs.phalconphp.com/en/latest/tutorial-base +[1]: https://docs.phalcon.io/4.0/en/tutorial-basic [2]: http://httpd.apache.org/ [3]: http://httpd.apache.org/docs/current/mod/mod_rewrite.html [4]: http://nginx.org/ @@ -40,4 +40,4 @@ Phalcon Tutorial is open-sourced software licensed under the [New BSD License][6 [6]: https://github.com/phalcon/tutorial/blob/master/docs/LICENSE.md [7]: https://github.com/phalcon/phalcon-devtools [8]: https://nanobox.io -[9]: https://docs.nanobox.io/install/ \ No newline at end of file +[9]: https://docs.nanobox.io/install/ From a062b4f79b03b593166c882e8269c077d7467e4c Mon Sep 17 00:00:00 2001 From: Anton Vasiliev Date: Sun, 14 Mar 2021 22:39:58 +0000 Subject: [PATCH 11/21] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ee47bae..bcd91e7 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ You can also run the application using [nanobox.io][8]. Installation instruction Phalcon Tutorial is open-sourced software licensed under the [New BSD License][6]. © Phalcon Framework Team and contributors -[1]: https://docs.phalcon.io/4.0/en/tutorial-basic +[1]: https://docs.phalcon.io/latest/en/tutorial-basic [2]: http://httpd.apache.org/ [3]: http://httpd.apache.org/docs/current/mod/mod_rewrite.html [4]: http://nginx.org/ From a2d3b1551018d96c3ead9dd9513dfb5f3a061c89 Mon Sep 17 00:00:00 2001 From: Nikolaos Dimopoulos Date: Thu, 1 Sep 2022 13:41:08 -0400 Subject: [PATCH 12/21] updating for v5.0 --- README.md | 16 ++++++++-- app/controllers/SignupController.php | 14 +++++---- app/views/index/index.phtml | 4 +-- app/views/signup/index.phtml | 11 +++---- app/views/signup/register.phtml | 2 +- boxfile.yml | 28 ----------------- docs/LICENSE.md | 20 +++++++++---- public/index.php | 29 ++++++++++-------- storage/schemas/tutorial.sql | 45 +++++++++++++++++++++++----- 9 files changed, 99 insertions(+), 70 deletions(-) delete mode 100644 boxfile.yml diff --git a/README.md b/README.md index bcd91e7..034c68d 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ performance and lower resource consumption. This is a very simple tutorial to understand the basis of work with Phalcon. -Check out a [explanation article][1]. +Check out an [explanation article][1]. ## Get Started @@ -13,7 +13,7 @@ Check out a [explanation article][1]. To run this application on your machine, you need at least: -* PHP >= 7+ +* PHP >= 8.0+ * Server Any of the following * [Apache][2] Web Server with [mod_rewrite][3] enabled * [Nginx][4] Web Server @@ -22,6 +22,7 @@ To run this application on your machine, you need at least: You can also run the application using [nanobox.io][8]. Installation instructions for nanobox can be found [here][9]. ## Running the application + * Clone the repository to a folder on your machine * Navigate to that folder * Run `nanobox run` @@ -30,14 +31,23 @@ You can also run the application using [nanobox.io][8]. Installation instruction ## License -Phalcon Tutorial is open-sourced software licensed under the [New BSD License][6]. © Phalcon Framework Team and contributors +Phalcon Tutorial is open-sourced software licensed under the [New BSD License][6]. © Phalcon Framework Team and +contributors [1]: https://docs.phalcon.io/latest/en/tutorial-basic + [2]: http://httpd.apache.org/ + [3]: http://httpd.apache.org/docs/current/mod/mod_rewrite.html + [4]: http://nginx.org/ + [5]: https://github.com/phalcon/cphalcon/releases + [6]: https://github.com/phalcon/tutorial/blob/master/docs/LICENSE.md + [7]: https://github.com/phalcon/phalcon-devtools + [8]: https://nanobox.io + [9]: https://docs.nanobox.io/install/ diff --git a/app/controllers/SignupController.php b/app/controllers/SignupController.php index a457d4e..31f5e41 100644 --- a/app/controllers/SignupController.php +++ b/app/controllers/SignupController.php @@ -16,13 +16,14 @@ public function indexAction() */ public function registerAction() { - $user = new Users(); + $post = $this->request->getPost(); // Store and check for errors - $success = $user->save( - $this->request->getPost(), - ['name', 'email'] - ); + $user = new Users(); + $user->name = $post['name']; + $user->email = $post['email']; + // Store and check for errors + $success = $user->save(); // passing the result to the view $this->view->success = $success; @@ -30,7 +31,8 @@ public function registerAction() if ($success) { $message = "Thanks for registering!"; } else { - $message = "Sorry, the following problems were generated:
" . implode('
', $user->getMessages()); + $message = "Sorry, the following problems were generated:
" + . implode('
', $user->getMessages()); } // passing a message to the view diff --git a/app/views/index/index.phtml b/app/views/index/index.phtml index 8709946..d068078 100644 --- a/app/views/index/index.phtml +++ b/app/views/index/index.phtml @@ -2,7 +2,7 @@ echo "

Hello!

"; -echo $this->tag->linkTo(["signup", "Sign Up Here!", 'class' => 'btn btn-primary']); +echo $this->tag->a('signup', 'Sign Up Here!', ['class' => 'btn btn-primary']); if ($users->count() > 0) { ?> @@ -30,4 +30,4 @@ if ($users->count() > 0) { Sign using this form -tag->form('signup/register') ?> +tag->form(['action' => '/signup/register']); ?>

- tag->textField("name") ?> + tag->inputText('name'); ?>

- tag->textField("email") ?> + tag->inputText('email'); ?>

- tag->submitButton(["Register", 'class' => 'btn btn-primary']) ?> + tag->inputSubmit('Register', null, ['class' => 'btn btn-primary']); ?>

-tag->endForm() ?> +tag->close('form'); ?> + diff --git a/app/views/signup/register.phtml b/app/views/signup/register.phtml index 7273e68..9edcdaa 100644 --- a/app/views/signup/register.phtml +++ b/app/views/signup/register.phtml @@ -2,4 +2,4 @@ -tag->linkTo(['/', 'Go back', 'class' => 'btn btn-primary']); ?> \ No newline at end of file +tag->a('/', 'Go back', ['class' => 'btn btn-primary']); ?> diff --git a/boxfile.yml b/boxfile.yml deleted file mode 100644 index 30aa3ef..0000000 --- a/boxfile.yml +++ /dev/null @@ -1,28 +0,0 @@ -run.config: - engine: php - engine.config: - runtime: php-7.2 - extensions: - - pdo - - pdo_mysql - - session - - simplexml - - tokenizer - - xmlwriter - zend_extensions: - - opcache - dev_zend_extensions: - add: - - xdebug - rm: - - opcache - extra_packages: - - mysql-client - - php72-phalcon-3.4.1 - extra_steps: - - echo 'extension=phalcon.so' >> "/data/etc/php/dev_php.ini" - - echo 'extension=phalcon.so' >> "/data/etc/php/prod_php.ini" - - cp /app/storage/ci/xdebug.ini /data/etc/php.dev.d/xdebug.ini - -data.mysql: - image: nanobox/mysql:5.7 diff --git a/docs/LICENSE.md b/docs/LICENSE.md index 28fa8fa..a2c3b3e 100644 --- a/docs/LICENSE.md +++ b/docs/LICENSE.md @@ -4,10 +4,20 @@ New BSD License Copyright (c) 2013-2017, Phalcon Framework Team and contributors All rights reserved. -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the +following conditions are met: -* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. -* Neither the name of the nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. +* Redistributions of source code must retain the above copyright notice, this list of conditions and the following + disclaimer. +* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided with the distribution. +* Neither the name of the nor the names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. diff --git a/public/index.php b/public/index.php index 86fdec2..29c32fa 100755 --- a/public/index.php +++ b/public/index.php @@ -1,8 +1,8 @@ registerDirs( +$loader->setDirectories( [ APP_PATH . '/controllers/', APP_PATH . '/models/', ] -)->register(); +) + ->register() +; // Create a DI -$di = new FactoryDefault(); +$container = new FactoryDefault(); // Setting up the view component -$di['view'] = function () { +$container['view'] = function () { $view = new View(); $view->setViewsDir(APP_PATH . '/views/'); return $view; }; // Setup a base URI so that all generated URIs include the "tutorial" folder -$di['url'] = function () { +$container['url'] = function () { $url = new UrlProvider(); $url->setBaseUri('/'); return $url; }; // Set the database service -$di['db'] = function () { +$container['db'] = function () { return new DbAdapter([ - "host" => getenv('DATA_MYSQL_HOST'), - "username" => getenv('DATA_MYSQL_USER'), - "password" => getenv('DATA_MYSQL_PASS'), - "dbname" => "gonano", + "host" => 'localhost', + "username" => 'your_db_user_name', + "password" => 'your_db_password', + "dbname" => 'tutorial', ]); }; // Handle the request try { - $application = new Application($di); - echo $application->handle()->getContent(); + $application = new Phalcon\Mvc\Application($container); + $response = $application->handle($_SERVER["REQUEST_URI"]); + $response->send(); } catch (Exception $e) { echo "Exception: ", $e->getMessage(); } diff --git a/storage/schemas/tutorial.sql b/storage/schemas/tutorial.sql index 21a2219..4f8cede 100644 --- a/storage/schemas/tutorial.sql +++ b/storage/schemas/tutorial.sql @@ -1,10 +1,41 @@ -DROP TABLE IF EXISTS `users`; -CREATE TABLE `users` ( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `name` varchar(70) NOT NULL, - `email` varchar(70) NOT NULL, +CREATE DATABASE IF NOT EXISTS `tutorial` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */; +USE `tutorial`; +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `users` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `users` +( + `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT 'Record ID', + `name` varchar(255) NOT NULL COMMENT 'User Name', + `email` varchar(255) NOT NULL COMMENT 'User Email Address', PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +/*!40101 SET character_set_client = @saved_cs_client */; + +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; -INSERT INTO `users` (`name`, `email`) VALUES ('Phalcon Team', 'team@phalconphp.com'); \ No newline at end of file +INSERT INTO `users` (`name`, `email`) +VALUES ('Phalcon Team', 'team@phalcon.io'); From b06f997cb9247d9955e71f4fc5676a04395dbb5b Mon Sep 17 00:00:00 2001 From: Nikolaos Dimopoulos Date: Sun, 14 Jan 2024 10:20:18 -0600 Subject: [PATCH 13/21] adding composer --- {storage/ci => bin}/import_db.sh | 0 composer.json | 44 + composer.lock | 2284 +++++++++++++++++++ docs/LICENSE.md | 23 - docs/LICENSE.txt | 26 - {storage => resources}/schemas/tutorial.sql | 0 storage/ci/xdebug.ini | 24 - 7 files changed, 2328 insertions(+), 73 deletions(-) rename {storage/ci => bin}/import_db.sh (100%) mode change 100755 => 100644 create mode 100644 composer.json create mode 100644 composer.lock delete mode 100644 docs/LICENSE.md delete mode 100644 docs/LICENSE.txt rename {storage => resources}/schemas/tutorial.sql (100%) delete mode 100644 storage/ci/xdebug.ini diff --git a/storage/ci/import_db.sh b/bin/import_db.sh old mode 100755 new mode 100644 similarity index 100% rename from storage/ci/import_db.sh rename to bin/import_db.sh diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..3079c38 --- /dev/null +++ b/composer.json @@ -0,0 +1,44 @@ +{ + "name": "phalcon/tutorial", + "type": "library", + "description": "This is a sample application for the Phalcon PHP Framework", + "keywords": [ + "phalcon", + "framework", + "sample app", + "tytiruak" + ], + "homepage": "https://phalcon.io", + "license": "MIT", + "authors": [ + { + "name": "Phalcon Team", + "homepage": "https://github.com/phalcon" + }, + { + "name": "Contributors", + "homepage": "https://github.com/phalcon/tutorial/graphs/contributors" + } + ], + "require": { + "php": ">=8.0", + "ext-openssl": "*", + "ext-phalcon": "^5.0.0", + "pds/skeleton": "^1.0" + }, + "require-dev": { + "phalcon/ide-stubs": "^v5.0.1", + "squizlabs/php_codesniffer": "^3.7", + "vimeo/psalm": "^4.27" + }, + "autoload": { + "psr-4": { + "Tutorial\\": "src/" + } + }, + "scripts": { + "cs": "./vendor/bin/phpcs --standard=phpcs.xml", + "cs-fix": "./vendor/bin/phpcbf --standard=phpcs.xml", + "analyze": "./vendor/bin/psalm" + } +} diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..dbb0dcd --- /dev/null +++ b/composer.lock @@ -0,0 +1,2284 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "6ee912fe8bc51cf77708aa36fae3ad15", + "packages": [ + { + "name": "pds/skeleton", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-pds/skeleton.git", + "reference": "95e476e5d629eadacbd721c5a9553e537514a231" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-pds/skeleton/zipball/95e476e5d629eadacbd721c5a9553e537514a231", + "reference": "95e476e5d629eadacbd721c5a9553e537514a231", + "shasum": "" + }, + "bin": [ + "bin/pds-skeleton" + ], + "type": "standard", + "autoload": { + "psr-4": { + "Pds\\Skeleton\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "CC-BY-SA-4.0" + ], + "description": "Standard for PHP package skeletons.", + "homepage": "https://github.com/php-pds/skeleton", + "support": { + "issues": "https://github.com/php-pds/skeleton/issues", + "source": "https://github.com/php-pds/skeleton/tree/1.x" + }, + "time": "2017-01-25T23:30:41+00:00" + } + ], + "packages-dev": [ + { + "name": "amphp/amp", + "version": "v2.6.2", + "source": { + "type": "git", + "url": "https://github.com/amphp/amp.git", + "reference": "9d5100cebffa729aaffecd3ad25dc5aeea4f13bb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/amp/zipball/9d5100cebffa729aaffecd3ad25dc5aeea4f13bb", + "reference": "9d5100cebffa729aaffecd3ad25dc5aeea4f13bb", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "dev-master", + "amphp/phpunit-util": "^1", + "ext-json": "*", + "jetbrains/phpstorm-stubs": "^2019.3", + "phpunit/phpunit": "^7 | ^8 | ^9", + "psalm/phar": "^3.11@dev", + "react/promise": "^2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "files": [ + "lib/functions.php", + "lib/Internal/functions.php" + ], + "psr-4": { + "Amp\\": "lib" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniel Lowrey", + "email": "rdlowrey@php.net" + }, + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Bob Weinand", + "email": "bobwei9@hotmail.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "description": "A non-blocking concurrency framework for PHP applications.", + "homepage": "https://amphp.org/amp", + "keywords": [ + "async", + "asynchronous", + "awaitable", + "concurrency", + "event", + "event-loop", + "future", + "non-blocking", + "promise" + ], + "support": { + "irc": "irc://irc.freenode.org/amphp", + "issues": "https://github.com/amphp/amp/issues", + "source": "https://github.com/amphp/amp/tree/v2.6.2" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2022-02-20T17:52:18+00:00" + }, + { + "name": "amphp/byte-stream", + "version": "v1.8.1", + "source": { + "type": "git", + "url": "https://github.com/amphp/byte-stream.git", + "reference": "acbd8002b3536485c997c4e019206b3f10ca15bd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/byte-stream/zipball/acbd8002b3536485c997c4e019206b3f10ca15bd", + "reference": "acbd8002b3536485c997c4e019206b3f10ca15bd", + "shasum": "" + }, + "require": { + "amphp/amp": "^2", + "php": ">=7.1" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "dev-master", + "amphp/phpunit-util": "^1.4", + "friendsofphp/php-cs-fixer": "^2.3", + "jetbrains/phpstorm-stubs": "^2019.3", + "phpunit/phpunit": "^6 || ^7 || ^8", + "psalm/phar": "^3.11.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "files": [ + "lib/functions.php" + ], + "psr-4": { + "Amp\\ByteStream\\": "lib" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "description": "A stream abstraction to make working with non-blocking I/O simple.", + "homepage": "http://amphp.org/byte-stream", + "keywords": [ + "amp", + "amphp", + "async", + "io", + "non-blocking", + "stream" + ], + "support": { + "irc": "irc://irc.freenode.org/amphp", + "issues": "https://github.com/amphp/byte-stream/issues", + "source": "https://github.com/amphp/byte-stream/tree/v1.8.1" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2021-03-30T17:13:30+00:00" + }, + { + "name": "composer/package-versions-deprecated", + "version": "1.11.99.5", + "source": { + "type": "git", + "url": "https://github.com/composer/package-versions-deprecated.git", + "reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/b4f54f74ef3453349c24a845d22392cd31e65f1d", + "reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.1.0 || ^2.0", + "php": "^7 || ^8" + }, + "replace": { + "ocramius/package-versions": "1.11.99" + }, + "require-dev": { + "composer/composer": "^1.9.3 || ^2.0@dev", + "ext-zip": "^1.13", + "phpunit/phpunit": "^6.5 || ^7" + }, + "type": "composer-plugin", + "extra": { + "class": "PackageVersions\\Installer", + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "PackageVersions\\": "src/PackageVersions" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be" + } + ], + "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", + "support": { + "issues": "https://github.com/composer/package-versions-deprecated/issues", + "source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.5" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2022-01-17T14:14:24+00:00" + }, + { + "name": "composer/pcre", + "version": "3.1.1", + "source": { + "type": "git", + "url": "https://github.com/composer/pcre.git", + "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/pcre/zipball/00104306927c7a0919b4ced2aaa6782c1e61a3c9", + "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.3", + "phpstan/phpstan-strict-rules": "^1.1", + "symfony/phpunit-bridge": "^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Pcre\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "PCRE wrapping library that offers type-safe preg_* replacements.", + "keywords": [ + "PCRE", + "preg", + "regex", + "regular expression" + ], + "support": { + "issues": "https://github.com/composer/pcre/issues", + "source": "https://github.com/composer/pcre/tree/3.1.1" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2023-10-11T07:11:09+00:00" + }, + { + "name": "composer/semver", + "version": "3.4.0", + "source": { + "type": "git", + "url": "https://github.com/composer/semver.git", + "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32", + "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.4", + "symfony/phpunit-bridge": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Semver\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" + } + ], + "description": "Semver library that offers utilities, version constraint parsing and validation.", + "keywords": [ + "semantic", + "semver", + "validation", + "versioning" + ], + "support": { + "irc": "ircs://irc.libera.chat:6697/composer", + "issues": "https://github.com/composer/semver/issues", + "source": "https://github.com/composer/semver/tree/3.4.0" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2023-08-31T09:50:34+00:00" + }, + { + "name": "composer/xdebug-handler", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/composer/xdebug-handler.git", + "reference": "ced299686f41dce890debac69273b47ffe98a40c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c", + "reference": "ced299686f41dce890debac69273b47ffe98a40c", + "shasum": "" + }, + "require": { + "composer/pcre": "^1 || ^2 || ^3", + "php": "^7.2.5 || ^8.0", + "psr/log": "^1 || ^2 || ^3" + }, + "require-dev": { + "phpstan/phpstan": "^1.0", + "phpstan/phpstan-strict-rules": "^1.1", + "symfony/phpunit-bridge": "^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Composer\\XdebugHandler\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "John Stevenson", + "email": "john-stevenson@blueyonder.co.uk" + } + ], + "description": "Restarts a process without Xdebug.", + "keywords": [ + "Xdebug", + "performance" + ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/xdebug-handler/issues", + "source": "https://github.com/composer/xdebug-handler/tree/3.0.3" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2022-02-25T21:32:43+00:00" + }, + { + "name": "dnoegel/php-xdg-base-dir", + "version": "v0.1.1", + "source": { + "type": "git", + "url": "https://github.com/dnoegel/php-xdg-base-dir.git", + "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", + "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35" + }, + "type": "library", + "autoload": { + "psr-4": { + "XdgBaseDir\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "implementation of xdg base directory specification for php", + "support": { + "issues": "https://github.com/dnoegel/php-xdg-base-dir/issues", + "source": "https://github.com/dnoegel/php-xdg-base-dir/tree/v0.1.1" + }, + "time": "2019-12-04T15:06:13+00:00" + }, + { + "name": "doctrine/deprecations", + "version": "1.1.2", + "source": { + "type": "git", + "url": "https://github.com/doctrine/deprecations.git", + "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/4f2d4f2836e7ec4e7a8625e75c6aa916004db931", + "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9", + "phpstan/phpstan": "1.4.10 || 1.10.15", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "psalm/plugin-phpunit": "0.18.4", + "psr/log": "^1 || ^2 || ^3", + "vimeo/psalm": "4.30.0 || 5.12.0" + }, + "suggest": { + "psr/log": "Allows logging deprecations via PSR-3 logger implementation" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", + "homepage": "https://www.doctrine-project.org/", + "support": { + "issues": "https://github.com/doctrine/deprecations/issues", + "source": "https://github.com/doctrine/deprecations/tree/1.1.2" + }, + "time": "2023-09-27T20:04:15+00:00" + }, + { + "name": "felixfbecker/advanced-json-rpc", + "version": "v3.2.1", + "source": { + "type": "git", + "url": "https://github.com/felixfbecker/php-advanced-json-rpc.git", + "reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/felixfbecker/php-advanced-json-rpc/zipball/b5f37dbff9a8ad360ca341f3240dc1c168b45447", + "reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447", + "shasum": "" + }, + "require": { + "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", + "php": "^7.1 || ^8.0", + "phpdocumentor/reflection-docblock": "^4.3.4 || ^5.0.0" + }, + "require-dev": { + "phpunit/phpunit": "^7.0 || ^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "AdvancedJsonRpc\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "ISC" + ], + "authors": [ + { + "name": "Felix Becker", + "email": "felix.b@outlook.com" + } + ], + "description": "A more advanced JSONRPC implementation", + "support": { + "issues": "https://github.com/felixfbecker/php-advanced-json-rpc/issues", + "source": "https://github.com/felixfbecker/php-advanced-json-rpc/tree/v3.2.1" + }, + "time": "2021-06-11T22:34:44+00:00" + }, + { + "name": "felixfbecker/language-server-protocol", + "version": "v1.5.2", + "source": { + "type": "git", + "url": "https://github.com/felixfbecker/php-language-server-protocol.git", + "reference": "6e82196ffd7c62f7794d778ca52b69feec9f2842" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/6e82196ffd7c62f7794d778ca52b69feec9f2842", + "reference": "6e82196ffd7c62f7794d778ca52b69feec9f2842", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "phpstan/phpstan": "*", + "squizlabs/php_codesniffer": "^3.1", + "vimeo/psalm": "^4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "LanguageServerProtocol\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "ISC" + ], + "authors": [ + { + "name": "Felix Becker", + "email": "felix.b@outlook.com" + } + ], + "description": "PHP classes for the Language Server Protocol", + "keywords": [ + "language", + "microsoft", + "php", + "server" + ], + "support": { + "issues": "https://github.com/felixfbecker/php-language-server-protocol/issues", + "source": "https://github.com/felixfbecker/php-language-server-protocol/tree/v1.5.2" + }, + "time": "2022-03-02T22:36:06+00:00" + }, + { + "name": "netresearch/jsonmapper", + "version": "v4.2.0", + "source": { + "type": "git", + "url": "https://github.com/cweiske/jsonmapper.git", + "reference": "f60565f8c0566a31acf06884cdaa591867ecc956" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/f60565f8c0566a31acf06884cdaa591867ecc956", + "reference": "f60565f8c0566a31acf06884cdaa591867ecc956", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-pcre": "*", + "ext-reflection": "*", + "ext-spl": "*", + "php": ">=7.1" + }, + "require-dev": { + "phpunit/phpunit": "~7.5 || ~8.0 || ~9.0", + "squizlabs/php_codesniffer": "~3.5" + }, + "type": "library", + "autoload": { + "psr-0": { + "JsonMapper": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "OSL-3.0" + ], + "authors": [ + { + "name": "Christian Weiske", + "email": "cweiske@cweiske.de", + "homepage": "http://github.com/cweiske/jsonmapper/", + "role": "Developer" + } + ], + "description": "Map nested JSON structures onto PHP classes", + "support": { + "email": "cweiske@cweiske.de", + "issues": "https://github.com/cweiske/jsonmapper/issues", + "source": "https://github.com/cweiske/jsonmapper/tree/v4.2.0" + }, + "time": "2023-04-09T17:37:40+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v4.18.0", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/1bcbb2179f97633e98bbbc87044ee2611c7d7999", + "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=7.0" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.9-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v4.18.0" + }, + "time": "2023-12-10T21:03:43+00:00" + }, + { + "name": "openlss/lib-array2xml", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/nullivex/lib-array2xml.git", + "reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nullivex/lib-array2xml/zipball/a91f18a8dfc69ffabe5f9b068bc39bb202c81d90", + "reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "type": "library", + "autoload": { + "psr-0": { + "LSS": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Bryan Tong", + "email": "bryan@nullivex.com", + "homepage": "https://www.nullivex.com" + }, + { + "name": "Tony Butler", + "email": "spudz76@gmail.com", + "homepage": "https://www.nullivex.com" + } + ], + "description": "Array2XML conversion library credit to lalit.org", + "homepage": "https://www.nullivex.com", + "keywords": [ + "array", + "array conversion", + "xml", + "xml conversion" + ], + "support": { + "issues": "https://github.com/nullivex/lib-array2xml/issues", + "source": "https://github.com/nullivex/lib-array2xml/tree/master" + }, + "time": "2019-03-29T20:06:56+00:00" + }, + { + "name": "phalcon/ide-stubs", + "version": "v5.6.0", + "source": { + "type": "git", + "url": "https://github.com/phalcon/ide-stubs.git", + "reference": "0593372dcf90d311f5f861a67b0438cc44d29a23" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phalcon/ide-stubs/zipball/0593372dcf90d311f5f861a67b0438cc44d29a23", + "reference": "0593372dcf90d311f5f861a67b0438cc44d29a23", + "shasum": "" + }, + "require": { + "php": ">=7.4" + }, + "require-dev": { + "squizlabs/php_codesniffer": "3.*", + "vimeo/psalm": "^3.4" + }, + "type": "library", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Phalcon Team", + "email": "team@phalcon.io", + "homepage": "https://phalcon.io/en-us/team" + }, + { + "name": "Contributors", + "homepage": "https://github.com/phalcon/ide-stubs/graphs/contributors" + } + ], + "description": "The most complete Phalcon Framework IDE stubs library which enables autocompletion in modern IDEs.", + "homepage": "https://phalcon.io", + "keywords": [ + "Devtools", + "Eclipse", + "autocomplete", + "ide", + "netbeans", + "phalcon", + "phpstorm", + "stub", + "stubs" + ], + "support": { + "forum": "https://forum.phalcon.io/", + "issues": "https://github.com/phalcon/ide-stubs/issues", + "source": "https://github.com/phalcon/ide-stubs" + }, + "funding": [ + { + "url": "https://github.com/phalcon", + "type": "github" + }, + { + "url": "https://opencollective.com/phalcon", + "type": "open_collective" + } + ], + "time": "2024-01-09T23:54:03+00:00" + }, + { + "name": "phpdocumentor/reflection-common", + "version": "2.2.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-2.x": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", + "keywords": [ + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" + ], + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", + "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" + }, + "time": "2020-06-27T09:03:43+00:00" + }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "5.3.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "622548b623e81ca6d78b721c5e029f4ce664f170" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170", + "reference": "622548b623e81ca6d78b721c5e029f4ce664f170", + "shasum": "" + }, + "require": { + "ext-filter": "*", + "php": "^7.2 || ^8.0", + "phpdocumentor/reflection-common": "^2.2", + "phpdocumentor/type-resolver": "^1.3", + "webmozart/assert": "^1.9.1" + }, + "require-dev": { + "mockery/mockery": "~1.3.2", + "psalm/phar": "^4.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + }, + { + "name": "Jaap van Otterdijk", + "email": "account@ijaap.nl" + } + ], + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0" + }, + "time": "2021-10-19T17:43:47+00:00" + }, + { + "name": "phpdocumentor/type-resolver", + "version": "1.8.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "fad452781b3d774e3337b0c0b245dd8e5a4455fc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/fad452781b3d774e3337b0c0b245dd8e5a4455fc", + "reference": "fad452781b3d774e3337b0c0b245dd8e5a4455fc", + "shasum": "" + }, + "require": { + "doctrine/deprecations": "^1.0", + "php": "^7.4 || ^8.0", + "phpdocumentor/reflection-common": "^2.0", + "phpstan/phpdoc-parser": "^1.13" + }, + "require-dev": { + "ext-tokenizer": "*", + "phpbench/phpbench": "^1.2", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^9.5", + "rector/rector": "^0.13.9", + "vimeo/psalm": "^4.25" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-1.x": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", + "support": { + "issues": "https://github.com/phpDocumentor/TypeResolver/issues", + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.8.0" + }, + "time": "2024-01-11T11:49:22+00:00" + }, + { + "name": "phpstan/phpdoc-parser", + "version": "1.25.0", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpdoc-parser.git", + "reference": "bd84b629c8de41aa2ae82c067c955e06f1b00240" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/bd84b629c8de41aa2ae82c067c955e06f1b00240", + "reference": "bd84b629c8de41aa2ae82c067c955e06f1b00240", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "doctrine/annotations": "^2.0", + "nikic/php-parser": "^4.15", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^1.5", + "phpstan/phpstan-phpunit": "^1.1", + "phpstan/phpstan-strict-rules": "^1.0", + "phpunit/phpunit": "^9.5", + "symfony/process": "^5.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "PHPStan\\PhpDocParser\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPDoc parser with support for nullable, intersection and generic types", + "support": { + "issues": "https://github.com/phpstan/phpdoc-parser/issues", + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.25.0" + }, + "time": "2024-01-04T17:06:16+00:00" + }, + { + "name": "psr/container", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/2.0.2" + }, + "time": "2021-11-05T16:47:00+00:00" + }, + { + "name": "psr/log", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/3.0.0" + }, + "time": "2021-07-14T16:46:02+00:00" + }, + { + "name": "sebastian/diff", + "version": "4.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/74be17022044ebaaecfdf0c5cd504fc9cd5a7131", + "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3", + "symfony/process": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-05-07T05:35:17+00:00" + }, + { + "name": "squizlabs/php_codesniffer", + "version": "3.8.1", + "source": { + "type": "git", + "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", + "reference": "14f5fff1e64118595db5408e946f3a22c75807f7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/14f5fff1e64118595db5408e946f3a22c75807f7", + "reference": "14f5fff1e64118595db5408e946f3a22c75807f7", + "shasum": "" + }, + "require": { + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4" + }, + "bin": [ + "bin/phpcbf", + "bin/phpcs" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Greg Sherwood", + "role": "Former lead" + }, + { + "name": "Juliette Reinders Folmer", + "role": "Current lead" + }, + { + "name": "Contributors", + "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer/graphs/contributors" + } + ], + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer", + "keywords": [ + "phpcs", + "standards", + "static analysis" + ], + "support": { + "issues": "https://github.com/PHPCSStandards/PHP_CodeSniffer/issues", + "security": "https://github.com/PHPCSStandards/PHP_CodeSniffer/security/policy", + "source": "https://github.com/PHPCSStandards/PHP_CodeSniffer", + "wiki": "https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki" + }, + "funding": [ + { + "url": "https://github.com/PHPCSStandards", + "type": "github" + }, + { + "url": "https://github.com/jrfnl", + "type": "github" + }, + { + "url": "https://opencollective.com/php_codesniffer", + "type": "open_collective" + } + ], + "time": "2024-01-11T20:47:48+00:00" + }, + { + "name": "symfony/console", + "version": "v6.0.19", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "c3ebc83d031b71c39da318ca8b7a07ecc67507ed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/c3ebc83d031b71c39da318ca8b7a07ecc67507ed", + "reference": "c3ebc83d031b71c39da318ca8b7a07ecc67507ed", + "shasum": "" + }, + "require": { + "php": ">=8.0.2", + "symfony/polyfill-mbstring": "~1.0", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/string": "^5.4|^6.0" + }, + "conflict": { + "symfony/dependency-injection": "<5.4", + "symfony/dotenv": "<5.4", + "symfony/event-dispatcher": "<5.4", + "symfony/lock": "<5.4", + "symfony/process": "<5.4" + }, + "provide": { + "psr/log-implementation": "1.0|2.0|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/lock": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/var-dumper": "^5.4|^6.0" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", + "keywords": [ + "cli", + "command line", + "console", + "terminal" + ], + "support": { + "source": "https://github.com/symfony/console/tree/v6.0.19" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-01-01T08:36:10+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", + "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-01-26T09:26:14+00:00" + }, + { + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "875e90aeea2777b6f135677f618529449334a612" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612", + "reference": "875e90aeea2777b6f135677f618529449334a612", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's grapheme_* functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-01-26T09:26:14+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", + "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-01-26T09:26:14+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "42292d99c55abe617799667f454222c54c60e229" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229", + "reference": "42292d99c55abe617799667f454222c54c60e229", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-07-28T09:04:16+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5", + "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-01-26T09:26:14+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v3.0.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "d78d39c1599bd1188b8e26bb341da52c3c6d8a66" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d78d39c1599bd1188b8e26bb341da52c3c6d8a66", + "reference": "d78d39c1599bd1188b8e26bb341da52c3c6d8a66", + "shasum": "" + }, + "require": { + "php": ">=8.0.2", + "psr/container": "^2.0" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "suggest": { + "symfony/service-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v3.0.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-30T19:17:58+00:00" + }, + { + "name": "symfony/string", + "version": "v6.0.19", + "source": { + "type": "git", + "url": "https://github.com/symfony/string.git", + "reference": "d9e72497367c23e08bf94176d2be45b00a9d232a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/string/zipball/d9e72497367c23e08bf94176d2be45b00a9d232a", + "reference": "d9e72497367c23e08bf94176d2be45b00a9d232a", + "shasum": "" + }, + "require": { + "php": ">=8.0.2", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-normalizer": "~1.0", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/translation-contracts": "<2.0" + }, + "require-dev": { + "symfony/error-handler": "^5.4|^6.0", + "symfony/http-client": "^5.4|^6.0", + "symfony/translation-contracts": "^2.0|^3.0", + "symfony/var-exporter": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", + "homepage": "https://symfony.com", + "keywords": [ + "grapheme", + "i18n", + "string", + "unicode", + "utf-8", + "utf8" + ], + "support": { + "source": "https://github.com/symfony/string/tree/v6.0.19" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-01-01T08:36:10+00:00" + }, + { + "name": "vimeo/psalm", + "version": "4.30.0", + "source": { + "type": "git", + "url": "https://github.com/vimeo/psalm.git", + "reference": "d0bc6e25d89f649e4f36a534f330f8bb4643dd69" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/d0bc6e25d89f649e4f36a534f330f8bb4643dd69", + "reference": "d0bc6e25d89f649e4f36a534f330f8bb4643dd69", + "shasum": "" + }, + "require": { + "amphp/amp": "^2.4.2", + "amphp/byte-stream": "^1.5", + "composer/package-versions-deprecated": "^1.8.0", + "composer/semver": "^1.4 || ^2.0 || ^3.0", + "composer/xdebug-handler": "^1.1 || ^2.0 || ^3.0", + "dnoegel/php-xdg-base-dir": "^0.1.1", + "ext-ctype": "*", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-simplexml": "*", + "ext-tokenizer": "*", + "felixfbecker/advanced-json-rpc": "^3.0.3", + "felixfbecker/language-server-protocol": "^1.5", + "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", + "nikic/php-parser": "^4.13", + "openlss/lib-array2xml": "^1.0", + "php": "^7.1|^8", + "sebastian/diff": "^3.0 || ^4.0", + "symfony/console": "^3.4.17 || ^4.1.6 || ^5.0 || ^6.0", + "symfony/polyfill-php80": "^1.25", + "webmozart/path-util": "^2.3" + }, + "provide": { + "psalm/psalm": "self.version" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.2", + "brianium/paratest": "^4.0||^6.0", + "ext-curl": "*", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpdocumentor/reflection-docblock": "^5", + "phpmyadmin/sql-parser": "5.1.0||dev-master", + "phpspec/prophecy": ">=1.9.0", + "phpstan/phpdoc-parser": "1.2.* || 1.6.4", + "phpunit/phpunit": "^9.0", + "psalm/plugin-phpunit": "^0.16", + "slevomat/coding-standard": "^7.0", + "squizlabs/php_codesniffer": "^3.5", + "symfony/process": "^4.3 || ^5.0 || ^6.0", + "weirdan/prophecy-shim": "^1.0 || ^2.0" + }, + "suggest": { + "ext-curl": "In order to send data to shepherd", + "ext-igbinary": "^2.0.5 is required, used to serialize caching data" + }, + "bin": [ + "psalm", + "psalm-language-server", + "psalm-plugin", + "psalm-refactor", + "psalter" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.x-dev", + "dev-3.x": "3.x-dev", + "dev-2.x": "2.x-dev", + "dev-1.x": "1.x-dev" + } + }, + "autoload": { + "files": [ + "src/functions.php", + "src/spl_object_id.php" + ], + "psr-4": { + "Psalm\\": "src/Psalm/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matthew Brown" + } + ], + "description": "A static analysis tool for finding errors in PHP applications", + "keywords": [ + "code", + "inspection", + "php" + ], + "support": { + "issues": "https://github.com/vimeo/psalm/issues", + "source": "https://github.com/vimeo/psalm/tree/4.30.0" + }, + "time": "2022-11-06T20:37:08+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.11.0", + "source": { + "type": "git", + "url": "https://github.com/webmozarts/assert.git", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "php": "^7.2 || ^8.0" + }, + "conflict": { + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<4.6.1 || 4.6.2" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.13" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "support": { + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.11.0" + }, + "time": "2022-06-03T18:03:27+00:00" + }, + { + "name": "webmozart/path-util", + "version": "2.3.0", + "source": { + "type": "git", + "url": "https://github.com/webmozart/path-util.git", + "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozart/path-util/zipball/d939f7edc24c9a1bb9c0dee5cb05d8e859490725", + "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "webmozart/assert": "~1.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.6", + "sebastian/version": "^1.0.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.3-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\PathUtil\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "A robust cross-platform utility for normalizing, comparing and modifying file paths.", + "support": { + "issues": "https://github.com/webmozart/path-util/issues", + "source": "https://github.com/webmozart/path-util/tree/2.3.0" + }, + "abandoned": "symfony/filesystem", + "time": "2015-12-17T08:42:14+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "php": ">=8.0", + "ext-openssl": "*", + "ext-phalcon": "^5.0.0" + }, + "platform-dev": [], + "plugin-api-version": "2.6.0" +} diff --git a/docs/LICENSE.md b/docs/LICENSE.md deleted file mode 100644 index a2c3b3e..0000000 --- a/docs/LICENSE.md +++ /dev/null @@ -1,23 +0,0 @@ -New BSD License -=============== - -Copyright (c) 2013-2017, Phalcon Framework Team and contributors -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this list of conditions and the following - disclaimer. -* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided with the distribution. -* Neither the name of the nor the names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. diff --git a/docs/LICENSE.txt b/docs/LICENSE.txt deleted file mode 100644 index 7d5e552..0000000 --- a/docs/LICENSE.txt +++ /dev/null @@ -1,26 +0,0 @@ -New BSD License - -Copyright (c) 2013-2017, Phalcon Framework Team and contributors -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/storage/schemas/tutorial.sql b/resources/schemas/tutorial.sql similarity index 100% rename from storage/schemas/tutorial.sql rename to resources/schemas/tutorial.sql diff --git a/storage/ci/xdebug.ini b/storage/ci/xdebug.ini deleted file mode 100644 index 217bbf2..0000000 --- a/storage/ci/xdebug.ini +++ /dev/null @@ -1,24 +0,0 @@ -xdebug.coverage_enable = 1 -xdebug.default_enable = 1 -xdebug.extended_info = 1 -xdebug.force_display_errors = 0 -xdebug.force_error_reporting = 0 -xdebug.max_nesting_level = 256 -xdebug.profiler_enable = 1 -xdebug.profiler_enable_trigger = 1 -xdebug.profiler_output_dir = "/tmp" -xdebug.remote_autostart = 0 -xdebug.remote_connect_back = 1 -xdebug.remote_cookie_expire_time = 3600 -xdebug.remote_enable = 1 -xdebug.remote_handler = "dbgp" -xdebug.remote_host = "localhost" -xdebug.remote_log = "" -xdebug.remote_mode = "req" -xdebug.remote_port = 9090 -xdebug.show_error_trace = 1 -xdebug.show_exception_trace = 1 -xdebug.show_local_vars = 1 -xdebug.var_display_max_children = 128 -xdebug.var_display_max_data = 512 -xdebug.var_display_max_depth = 3 From a10a3781f01616b1ed05955ccc5b8d247e95bf74 Mon Sep 17 00:00:00 2001 From: Nikolaos Dimopoulos Date: Sun, 14 Jan 2024 10:20:35 -0600 Subject: [PATCH 14/21] htrouter for local --- .htrouter.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 .htrouter.php diff --git a/.htrouter.php b/.htrouter.php new file mode 100644 index 0000000..b5ee59e --- /dev/null +++ b/.htrouter.php @@ -0,0 +1,15 @@ + Date: Sun, 14 Jan 2024 10:20:56 -0600 Subject: [PATCH 15/21] adjusting .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 1fc1b3b..ac29e4a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .idea .DS_Store public/.DS_Store +vendor/ From fbf9aa422e1ecdcb52f73c618a146bab9c100215 Mon Sep 17 00:00:00 2001 From: Nikolaos Dimopoulos Date: Sun, 14 Jan 2024 10:21:57 -0600 Subject: [PATCH 16/21] added documentaiton --- CHANGELOG.md | 17 +++++++++++++++++ CODE_OF_CONDUCT.md | 25 +++++++++++++++++++++++++ CONTRIBUTING.md | 9 +++++++++ 3 files changed, 51 insertions(+) create mode 100644 CHANGELOG.md create mode 100644 CODE_OF_CONDUCT.md create mode 100644 CONTRIBUTING.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..fefff1f --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,17 @@ +# Changelog + +## [5.6.0](https://github.com/phalcon/tutorial/releases/tag/v5.6.0) (2024-01-14) + +### Changed + +- Changed license to `MIT` + +### Added + +- Added `CHANGELOG`, `CONTRIBUTING`, `CODE_OF_CONDUCT` documents +- Added local development support with `docker compose` +- Added `composer.json` with packages + +### Fixed + +### Removed diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..f2a9786 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,25 @@ +# Contributor Covenant Code of Conduct + +## TL;DR + +Common sense rules. Treat people the same way you want to be treated. + +## Detail + +This is an open source project. Everyone and anyone is welcome to contribute +to it as much or as little as they want to. + +Personal views of contributors have no effect on the project and should be +kept in the personal realm not this project. + +It is a requirement to treat other contributors as well as maintainers with +respect, when communicating in the realm of this project. It is OK to agree to +disagree. + +## Conflict + +If ever conflict arises, please bring it to the attention of the maintainers +privately. You can always find us on our [Discord](https://phalcon.io/discord) +server or you can send us an email at team@phalconphp.com + +The core team maintains the final decision on any conflict that may arise. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..9debd4c --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,9 @@ +Vökuró is an open source project and a volunteer effort. + +*We only accept bug reports, new feature requests and pull requests in GitHub*. + +Vökuró does not have human resources fully dedicated to the maintenance of this software. +If you want something to be improved or you want a new feature please submit a Pull Request. + +Thanks!
+Phalcon Team From caebb00b382a2a552f12f8b4e6c3ea43ffc8c622 Mon Sep 17 00:00:00 2001 From: Nikolaos Dimopoulos Date: Sun, 14 Jan 2024 10:22:09 -0600 Subject: [PATCH 17/21] reformatting code --- public/.htaccess | 0 public/index.php | 33 ++++++++++++++++++--------------- 2 files changed, 18 insertions(+), 15 deletions(-) mode change 100755 => 100644 public/.htaccess mode change 100755 => 100644 public/index.php diff --git a/public/.htaccess b/public/.htaccess old mode 100755 new mode 100644 diff --git a/public/index.php b/public/index.php old mode 100755 new mode 100644 index 29c32fa..1819253 --- a/public/index.php +++ b/public/index.php @@ -8,17 +8,18 @@ use Phalcon\Mvc\View; define('BASE_PATH', dirname(__DIR__)); -define('APP_PATH', BASE_PATH . '/app'); +define('APP_PATH', BASE_PATH . '/src'); // Register an autoloader $loader = new Loader(); -$loader->setDirectories( - [ - APP_PATH . '/controllers/', - APP_PATH . '/models/', - ] -) - ->register() +$loader + ->setDirectories( + [ + APP_PATH . '/controllers/', + APP_PATH . '/models/', + ] + ) + ->register() ; // Create a DI @@ -40,17 +41,19 @@ // Set the database service $container['db'] = function () { - return new DbAdapter([ - "host" => 'localhost', - "username" => 'your_db_user_name', - "password" => 'your_db_password', - "dbname" => 'tutorial', - ]); + return new DbAdapter( + [ + "host" => 'tutorial-mysql', + "username" => 'phalcon', + "password" => 'secret', + "dbname" => 'phalcon_tutorial', + ] + ); }; // Handle the request try { - $application = new Phalcon\Mvc\Application($container); + $application = new Application($container); $response = $application->handle($_SERVER["REQUEST_URI"]); $response->send(); } catch (Exception $e) { From 987db91c1e6172f7d0504aab3abf4b7ff3d0c6bd Mon Sep 17 00:00:00 2001 From: Nikolaos Dimopoulos Date: Sun, 14 Jan 2024 10:22:23 -0600 Subject: [PATCH 18/21] added docker for local development --- docker-compose.yml | 76 +++++++++++++++++++++++++++ resources/docker/8.0/Dockerfile | 68 ++++++++++++++++++++++++ resources/docker/8.0/config/.bashrc | 75 ++++++++++++++++++++++++++ resources/docker/8.0/config/extra.ini | 27 ++++++++++ resources/docker/8.1/Dockerfile | 68 ++++++++++++++++++++++++ resources/docker/8.1/config/.bashrc | 75 ++++++++++++++++++++++++++ resources/docker/8.1/config/extra.ini | 27 ++++++++++ resources/docker/8.2/Dockerfile | 68 ++++++++++++++++++++++++ resources/docker/8.2/config/.bashrc | 75 ++++++++++++++++++++++++++ resources/docker/8.2/config/extra.ini | 27 ++++++++++ resources/docker/8.3/Dockerfile | 68 ++++++++++++++++++++++++ resources/docker/8.3/config/.bashrc | 75 ++++++++++++++++++++++++++ resources/docker/8.3/config/extra.ini | 27 ++++++++++ 13 files changed, 756 insertions(+) create mode 100644 docker-compose.yml create mode 100644 resources/docker/8.0/Dockerfile create mode 100644 resources/docker/8.0/config/.bashrc create mode 100644 resources/docker/8.0/config/extra.ini create mode 100644 resources/docker/8.1/Dockerfile create mode 100644 resources/docker/8.1/config/.bashrc create mode 100644 resources/docker/8.1/config/extra.ini create mode 100644 resources/docker/8.2/Dockerfile create mode 100644 resources/docker/8.2/config/.bashrc create mode 100644 resources/docker/8.2/config/extra.ini create mode 100644 resources/docker/8.3/Dockerfile create mode 100644 resources/docker/8.3/config/.bashrc create mode 100644 resources/docker/8.3/config/extra.ini diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..06479d6 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,76 @@ +version: '3' +services: + + # Application - Vökuró + tutorial-8.0: + build: resources/docker/8.0 + container_name: tutorial-8.0 + tty: true + working_dir: /code + depends_on: + - tutorial-mysql + volumes: + - ./:/code + networks: + - tutorial-network + + tutorial-8.1: + build: resources/docker/8.1 + container_name: tutorial-8.1 + tty: true + working_dir: /code + depends_on: + - tutorial-mysql + volumes: + - ./:/code + networks: + - tutorial-network + + tutorial-8.2: + build: resources/docker/8.2 + container_name: tutorial-8.2 + tty: true + working_dir: /code + depends_on: + - tutorial-mysql + volumes: + - ./:/code + networks: + - tutorial-network + + tutorial-8.3: + build: resources/docker/8.3 + container_name: tutorial-8.3 + tty: true + working_dir: /code + depends_on: + - tutorial-mysql + volumes: + - ./:/code + networks: + - tutorial-network + + # Database - Mysql + tutorial-mysql: + image: mysql:5.7 + container_name: tutorial-mysql + tty: true + environment: + - MYSQL_ROOT_PASSWORD=secret + - MYSQL_USER=phalcon + - MYSQL_DATABASE=phalcon_tutorial + - MYSQL_PASSWORD=secret + volumes: + - tutorial-volume:/var/lib/mysql/ + networks: + - tutorial-network + +# Network +networks: + tutorial-network: + driver: bridge + +# Volumes +volumes: + tutorial-volume: + driver: local diff --git a/resources/docker/8.0/Dockerfile b/resources/docker/8.0/Dockerfile new file mode 100644 index 0000000..8adf485 --- /dev/null +++ b/resources/docker/8.0/Dockerfile @@ -0,0 +1,68 @@ +FROM composer:latest as composer +FROM php:8.0-fpm + +COPY ./config/extra.ini /usr/local/etc/php/conf.d/ + +# Set working directory +WORKDIR /code + +LABEL vendor="Phalcon" \ + maintainer="Phalcon Team " \ + description="The PHP image to test the tutorial application" + +ENV PHALCON_VERSION="5.6.0" + +# Update +RUN apt update -y && \ + apt install -y \ + apt-utils \ + gettext \ + git \ + libzip-dev \ + nano \ + sudo \ + wget \ + zip + +# PECL Packages +RUN pecl install phalcon-${PHALCON_VERSION} \ + xdebug + +# Install PHP extensions +RUN docker-php-ext-install \ + gettext \ + pdo_mysql \ + zip + +# Install PHP extensions +RUN docker-php-ext-enable \ + opcache \ + phalcon \ + xdebug + +# Clear cache +RUN apt-get clean && rm -rf /var/lib/apt/lists/* + +# Add user +RUN groupadd -g 1000 phalcon +RUN useradd -u 1000 -ms /bin/bash -g phalcon phalcon + +# Composer +COPY --from=composer /usr/bin/composer /usr/local/bin/composer + +# Copy existing application directory contents +COPY . /code + +# Bash script with helper aliases +COPY ./config/.bashrc /root/.bashrc +COPY ./config/.bashrc /home/phalcon/.bashrc + +# Copy existing application directory permissions +COPY --chown=phalcon:phalcon . /code + +# Change current user to phalcon +USER phalcon + +EXPOSE 80 + +CMD ["php", "-S", "0.0.0.0:80", "-t", "public/", ".htrouter.php"] diff --git a/resources/docker/8.0/config/.bashrc b/resources/docker/8.0/config/.bashrc new file mode 100644 index 0000000..e106a75 --- /dev/null +++ b/resources/docker/8.0/config/.bashrc @@ -0,0 +1,75 @@ +#!/bin/bash + +# Easier navigation: .., ..., ...., ....., ~ and - +alias ..="cd .." +alias ...="cd ../.." +alias ....="cd ../../.." +alias .....="cd ../../../.." +alias ~="cd ~" # `cd` is probably faster to type though +alias -- -="cd -" + +# Shortcuts +alias g="git" +alias h="history" + +# Detect which `ls` flavor is in use +if ls --color > /dev/null 2>&1; then # GNU `ls` + colorflag="--color" +else # OS X `ls` + colorflag="-G" +fi + +# List all files colorized in long format +# shellcheck disable=SC2139 +alias l="ls -lF ${colorflag}" + +# List all files colorized in long format, including dot files +# shellcheck disable=SC2139 +alias la="ls -laF ${colorflag}" + +# List only directories +# shellcheck disable=SC2139 +alias lsd="ls -lF ${colorflag} | grep --color=never '^d'" + +# See: https://superuser.com/a/656746/280737 +alias ll='LC_ALL="C.UTF-8" ls -alF' + +# Always use color output for `ls` +# shellcheck disable=SC2139 +alias ls="command ls ${colorflag}" +export LS_COLORS='no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.ogg=01;35:*.mp3=01;35:*.wav=01;35:' + +# Always enable colored `grep` output +alias grep='grep --color=auto ' + +# Enable aliases to be sudo’ed +alias sudo='sudo ' + +# Get week number +alias week='date +%V' + +# Stopwatch +alias timer='echo "Timer started. Stop with Ctrl-D." && date && time cat && date' + +# Canonical hex dump; some systems have this symlinked +command -v hd > /dev/null || alias hd="hexdump -C" + +# vhosts +alias hosts='sudo nano /etc/hosts' + +# copy working directory +alias cwd='pwd | tr -d "\r\n" | xclip -selection clipboard' + +# copy file interactive +alias cp='cp -i' + +# move file interactive +alias mv='mv -i' + +# untar +alias untar='tar xvf' + +# Zephir related +alias untar='tar xvf' + +PATH=$PATH:./vendor/bin diff --git a/resources/docker/8.0/config/extra.ini b/resources/docker/8.0/config/extra.ini new file mode 100644 index 0000000..576ff1b --- /dev/null +++ b/resources/docker/8.0/config/extra.ini @@ -0,0 +1,27 @@ +error_reporting = E_ALL +display_errors = "On" +display_startup_errors = "On" +log_errors = "On" +error_log = /code/php_errors.log +memory_limit = 512M +apc.enable_cli = "On" +session.save_path = "/tmp" + +;xdebug +xdebug.client_host = "localhost" +xdebug.client_port = 9090 +xdebug.discover_client_host = 1 +xdebug.force_display_errors = 0 +xdebug.force_error_reporting = 0 +xdebug.max_nesting_level = 256 +xdebug.mode = coverage, debug, develop +xdebug.output_dir = "/tmp" +xdebug.remote_cookie_expire_time = 3600 +xdebug.remote_mode = "req" +xdebug.show_error_trace = 1 +xdebug.show_exception_trace = 1 +xdebug.show_local_vars = 1 +xdebug.start_with_request = yes +xdebug.var_display_max_children = 128 +xdebug.var_display_max_data = 512 +xdebug.var_display_max_depth = 3 diff --git a/resources/docker/8.1/Dockerfile b/resources/docker/8.1/Dockerfile new file mode 100644 index 0000000..bff12c5 --- /dev/null +++ b/resources/docker/8.1/Dockerfile @@ -0,0 +1,68 @@ +FROM composer:latest as composer +FROM php:8.1-fpm + +COPY ./config/extra.ini /usr/local/etc/php/conf.d/ + +# Set working directory +WORKDIR /code + +LABEL vendor="Phalcon" \ + maintainer="Phalcon Team " \ + description="The PHP image to test the tutorial application" + +ENV PHALCON_VERSION="5.6.0" + +# Update +RUN apt update -y && \ + apt install -y \ + apt-utils \ + gettext \ + git \ + libzip-dev \ + nano \ + sudo \ + wget \ + zip + +# PECL Packages +RUN pecl install phalcon-${PHALCON_VERSION} \ + xdebug + +# Install PHP extensions +RUN docker-php-ext-install \ + gettext \ + pdo_mysql \ + zip + +# Install PHP extensions +RUN docker-php-ext-enable \ + opcache \ + phalcon \ + xdebug + +# Clear cache +RUN apt-get clean && rm -rf /var/lib/apt/lists/* + +# Add user +RUN groupadd -g 1000 phalcon +RUN useradd -u 1000 -ms /bin/bash -g phalcon phalcon + +# Composer +COPY --from=composer /usr/bin/composer /usr/local/bin/composer + +# Copy existing application directory contents +COPY . /code + +# Bash script with helper aliases +COPY config/.bashrc /root/.bashrc +COPY config/.bashrc /home/phalcon/.bashrc + +# Copy existing application directory permissions +COPY --chown=phalcon:phalcon . /code + +# Change current user to phalcon +USER phalcon + +EXPOSE 80 + +CMD ["php", "-S", "0.0.0.0:80", "-t", "public/", ".htrouter.php"] diff --git a/resources/docker/8.1/config/.bashrc b/resources/docker/8.1/config/.bashrc new file mode 100644 index 0000000..e106a75 --- /dev/null +++ b/resources/docker/8.1/config/.bashrc @@ -0,0 +1,75 @@ +#!/bin/bash + +# Easier navigation: .., ..., ...., ....., ~ and - +alias ..="cd .." +alias ...="cd ../.." +alias ....="cd ../../.." +alias .....="cd ../../../.." +alias ~="cd ~" # `cd` is probably faster to type though +alias -- -="cd -" + +# Shortcuts +alias g="git" +alias h="history" + +# Detect which `ls` flavor is in use +if ls --color > /dev/null 2>&1; then # GNU `ls` + colorflag="--color" +else # OS X `ls` + colorflag="-G" +fi + +# List all files colorized in long format +# shellcheck disable=SC2139 +alias l="ls -lF ${colorflag}" + +# List all files colorized in long format, including dot files +# shellcheck disable=SC2139 +alias la="ls -laF ${colorflag}" + +# List only directories +# shellcheck disable=SC2139 +alias lsd="ls -lF ${colorflag} | grep --color=never '^d'" + +# See: https://superuser.com/a/656746/280737 +alias ll='LC_ALL="C.UTF-8" ls -alF' + +# Always use color output for `ls` +# shellcheck disable=SC2139 +alias ls="command ls ${colorflag}" +export LS_COLORS='no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.ogg=01;35:*.mp3=01;35:*.wav=01;35:' + +# Always enable colored `grep` output +alias grep='grep --color=auto ' + +# Enable aliases to be sudo’ed +alias sudo='sudo ' + +# Get week number +alias week='date +%V' + +# Stopwatch +alias timer='echo "Timer started. Stop with Ctrl-D." && date && time cat && date' + +# Canonical hex dump; some systems have this symlinked +command -v hd > /dev/null || alias hd="hexdump -C" + +# vhosts +alias hosts='sudo nano /etc/hosts' + +# copy working directory +alias cwd='pwd | tr -d "\r\n" | xclip -selection clipboard' + +# copy file interactive +alias cp='cp -i' + +# move file interactive +alias mv='mv -i' + +# untar +alias untar='tar xvf' + +# Zephir related +alias untar='tar xvf' + +PATH=$PATH:./vendor/bin diff --git a/resources/docker/8.1/config/extra.ini b/resources/docker/8.1/config/extra.ini new file mode 100644 index 0000000..576ff1b --- /dev/null +++ b/resources/docker/8.1/config/extra.ini @@ -0,0 +1,27 @@ +error_reporting = E_ALL +display_errors = "On" +display_startup_errors = "On" +log_errors = "On" +error_log = /code/php_errors.log +memory_limit = 512M +apc.enable_cli = "On" +session.save_path = "/tmp" + +;xdebug +xdebug.client_host = "localhost" +xdebug.client_port = 9090 +xdebug.discover_client_host = 1 +xdebug.force_display_errors = 0 +xdebug.force_error_reporting = 0 +xdebug.max_nesting_level = 256 +xdebug.mode = coverage, debug, develop +xdebug.output_dir = "/tmp" +xdebug.remote_cookie_expire_time = 3600 +xdebug.remote_mode = "req" +xdebug.show_error_trace = 1 +xdebug.show_exception_trace = 1 +xdebug.show_local_vars = 1 +xdebug.start_with_request = yes +xdebug.var_display_max_children = 128 +xdebug.var_display_max_data = 512 +xdebug.var_display_max_depth = 3 diff --git a/resources/docker/8.2/Dockerfile b/resources/docker/8.2/Dockerfile new file mode 100644 index 0000000..7ee6627 --- /dev/null +++ b/resources/docker/8.2/Dockerfile @@ -0,0 +1,68 @@ +FROM composer:latest as composer +FROM php:8.2-fpm + +COPY ./config/extra.ini /usr/local/etc/php/conf.d/ + +# Set working directory +WORKDIR /code + +LABEL vendor="Phalcon" \ + maintainer="Phalcon Team " \ + description="The PHP image to test the tutorial application" + +ENV PHALCON_VERSION="5.6.0" + +# Update +RUN apt update -y && \ + apt install -y \ + apt-utils \ + gettext \ + git \ + libzip-dev \ + nano \ + sudo \ + wget \ + zip + +# PECL Packages +RUN pecl install phalcon-${PHALCON_VERSION} \ + xdebug + +# Install PHP extensions +RUN docker-php-ext-install \ + gettext \ + pdo_mysql \ + zip + +# Install PHP extensions +RUN docker-php-ext-enable \ + opcache \ + phalcon \ + xdebug + +# Clear cache +RUN apt-get clean && rm -rf /var/lib/apt/lists/* + +# Add user +RUN groupadd -g 1000 phalcon +RUN useradd -u 1000 -ms /bin/bash -g phalcon phalcon + +# Composer +COPY --from=composer /usr/bin/composer /usr/local/bin/composer + +# Copy existing application directory contents +COPY . /code + +# Bash script with helper aliases +COPY config/.bashrc /root/.bashrc +COPY config/.bashrc /home/phalcon/.bashrc + +# Copy existing application directory permissions +COPY --chown=phalcon:phalcon . /code + +# Change current user to phalcon +USER phalcon + +EXPOSE 80 + +CMD ["php", "-S", "0.0.0.0:80", "-t", "public/", ".htrouter.php"] diff --git a/resources/docker/8.2/config/.bashrc b/resources/docker/8.2/config/.bashrc new file mode 100644 index 0000000..e106a75 --- /dev/null +++ b/resources/docker/8.2/config/.bashrc @@ -0,0 +1,75 @@ +#!/bin/bash + +# Easier navigation: .., ..., ...., ....., ~ and - +alias ..="cd .." +alias ...="cd ../.." +alias ....="cd ../../.." +alias .....="cd ../../../.." +alias ~="cd ~" # `cd` is probably faster to type though +alias -- -="cd -" + +# Shortcuts +alias g="git" +alias h="history" + +# Detect which `ls` flavor is in use +if ls --color > /dev/null 2>&1; then # GNU `ls` + colorflag="--color" +else # OS X `ls` + colorflag="-G" +fi + +# List all files colorized in long format +# shellcheck disable=SC2139 +alias l="ls -lF ${colorflag}" + +# List all files colorized in long format, including dot files +# shellcheck disable=SC2139 +alias la="ls -laF ${colorflag}" + +# List only directories +# shellcheck disable=SC2139 +alias lsd="ls -lF ${colorflag} | grep --color=never '^d'" + +# See: https://superuser.com/a/656746/280737 +alias ll='LC_ALL="C.UTF-8" ls -alF' + +# Always use color output for `ls` +# shellcheck disable=SC2139 +alias ls="command ls ${colorflag}" +export LS_COLORS='no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.ogg=01;35:*.mp3=01;35:*.wav=01;35:' + +# Always enable colored `grep` output +alias grep='grep --color=auto ' + +# Enable aliases to be sudo’ed +alias sudo='sudo ' + +# Get week number +alias week='date +%V' + +# Stopwatch +alias timer='echo "Timer started. Stop with Ctrl-D." && date && time cat && date' + +# Canonical hex dump; some systems have this symlinked +command -v hd > /dev/null || alias hd="hexdump -C" + +# vhosts +alias hosts='sudo nano /etc/hosts' + +# copy working directory +alias cwd='pwd | tr -d "\r\n" | xclip -selection clipboard' + +# copy file interactive +alias cp='cp -i' + +# move file interactive +alias mv='mv -i' + +# untar +alias untar='tar xvf' + +# Zephir related +alias untar='tar xvf' + +PATH=$PATH:./vendor/bin diff --git a/resources/docker/8.2/config/extra.ini b/resources/docker/8.2/config/extra.ini new file mode 100644 index 0000000..576ff1b --- /dev/null +++ b/resources/docker/8.2/config/extra.ini @@ -0,0 +1,27 @@ +error_reporting = E_ALL +display_errors = "On" +display_startup_errors = "On" +log_errors = "On" +error_log = /code/php_errors.log +memory_limit = 512M +apc.enable_cli = "On" +session.save_path = "/tmp" + +;xdebug +xdebug.client_host = "localhost" +xdebug.client_port = 9090 +xdebug.discover_client_host = 1 +xdebug.force_display_errors = 0 +xdebug.force_error_reporting = 0 +xdebug.max_nesting_level = 256 +xdebug.mode = coverage, debug, develop +xdebug.output_dir = "/tmp" +xdebug.remote_cookie_expire_time = 3600 +xdebug.remote_mode = "req" +xdebug.show_error_trace = 1 +xdebug.show_exception_trace = 1 +xdebug.show_local_vars = 1 +xdebug.start_with_request = yes +xdebug.var_display_max_children = 128 +xdebug.var_display_max_data = 512 +xdebug.var_display_max_depth = 3 diff --git a/resources/docker/8.3/Dockerfile b/resources/docker/8.3/Dockerfile new file mode 100644 index 0000000..2d10787 --- /dev/null +++ b/resources/docker/8.3/Dockerfile @@ -0,0 +1,68 @@ +FROM composer:latest as composer +FROM php:8.3-fpm + +COPY ./config/extra.ini /usr/local/etc/php/conf.d/ + +# Set working directory +WORKDIR /code + +LABEL vendor="Phalcon" \ + maintainer="Phalcon Team " \ + description="The PHP image to test the tutorial application" + +ENV PHALCON_VERSION="5.6.0" + +# Update +RUN apt update -y && \ + apt install -y \ + apt-utils \ + gettext \ + git \ + libzip-dev \ + nano \ + sudo \ + wget \ + zip + +# PECL Packages +RUN pecl install phalcon-${PHALCON_VERSION} \ + xdebug + +# Install PHP extensions +RUN docker-php-ext-install \ + gettext \ + pdo_mysql \ + zip + +# Install PHP extensions +RUN docker-php-ext-enable \ + opcache \ + phalcon \ + xdebug + +# Clear cache +RUN apt-get clean && rm -rf /var/lib/apt/lists/* + +# Add user +RUN groupadd -g 1000 phalcon +RUN useradd -u 1000 -ms /bin/bash -g phalcon phalcon + +# Composer +COPY --from=composer /usr/bin/composer /usr/local/bin/composer + +# Copy existing application directory contents +COPY . /code + +# Bash script with helper aliases +COPY config/.bashrc /root/.bashrc +COPY config/.bashrc /home/phalcon/.bashrc + +# Copy existing application directory permissions +COPY --chown=phalcon:phalcon . /code + +# Change current user to phalcon +USER phalcon + +EXPOSE 80 + +CMD ["php", "-S", "0.0.0.0:80", "-t", "public/", ".htrouter.php"] diff --git a/resources/docker/8.3/config/.bashrc b/resources/docker/8.3/config/.bashrc new file mode 100644 index 0000000..e106a75 --- /dev/null +++ b/resources/docker/8.3/config/.bashrc @@ -0,0 +1,75 @@ +#!/bin/bash + +# Easier navigation: .., ..., ...., ....., ~ and - +alias ..="cd .." +alias ...="cd ../.." +alias ....="cd ../../.." +alias .....="cd ../../../.." +alias ~="cd ~" # `cd` is probably faster to type though +alias -- -="cd -" + +# Shortcuts +alias g="git" +alias h="history" + +# Detect which `ls` flavor is in use +if ls --color > /dev/null 2>&1; then # GNU `ls` + colorflag="--color" +else # OS X `ls` + colorflag="-G" +fi + +# List all files colorized in long format +# shellcheck disable=SC2139 +alias l="ls -lF ${colorflag}" + +# List all files colorized in long format, including dot files +# shellcheck disable=SC2139 +alias la="ls -laF ${colorflag}" + +# List only directories +# shellcheck disable=SC2139 +alias lsd="ls -lF ${colorflag} | grep --color=never '^d'" + +# See: https://superuser.com/a/656746/280737 +alias ll='LC_ALL="C.UTF-8" ls -alF' + +# Always use color output for `ls` +# shellcheck disable=SC2139 +alias ls="command ls ${colorflag}" +export LS_COLORS='no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.ogg=01;35:*.mp3=01;35:*.wav=01;35:' + +# Always enable colored `grep` output +alias grep='grep --color=auto ' + +# Enable aliases to be sudo’ed +alias sudo='sudo ' + +# Get week number +alias week='date +%V' + +# Stopwatch +alias timer='echo "Timer started. Stop with Ctrl-D." && date && time cat && date' + +# Canonical hex dump; some systems have this symlinked +command -v hd > /dev/null || alias hd="hexdump -C" + +# vhosts +alias hosts='sudo nano /etc/hosts' + +# copy working directory +alias cwd='pwd | tr -d "\r\n" | xclip -selection clipboard' + +# copy file interactive +alias cp='cp -i' + +# move file interactive +alias mv='mv -i' + +# untar +alias untar='tar xvf' + +# Zephir related +alias untar='tar xvf' + +PATH=$PATH:./vendor/bin diff --git a/resources/docker/8.3/config/extra.ini b/resources/docker/8.3/config/extra.ini new file mode 100644 index 0000000..576ff1b --- /dev/null +++ b/resources/docker/8.3/config/extra.ini @@ -0,0 +1,27 @@ +error_reporting = E_ALL +display_errors = "On" +display_startup_errors = "On" +log_errors = "On" +error_log = /code/php_errors.log +memory_limit = 512M +apc.enable_cli = "On" +session.save_path = "/tmp" + +;xdebug +xdebug.client_host = "localhost" +xdebug.client_port = 9090 +xdebug.discover_client_host = 1 +xdebug.force_display_errors = 0 +xdebug.force_error_reporting = 0 +xdebug.max_nesting_level = 256 +xdebug.mode = coverage, debug, develop +xdebug.output_dir = "/tmp" +xdebug.remote_cookie_expire_time = 3600 +xdebug.remote_mode = "req" +xdebug.show_error_trace = 1 +xdebug.show_exception_trace = 1 +xdebug.show_local_vars = 1 +xdebug.start_with_request = yes +xdebug.var_display_max_children = 128 +xdebug.var_display_max_data = 512 +xdebug.var_display_max_depth = 3 From 6101d21f7f14ba4283f9e6e5aff65e7349c53fd1 Mon Sep 17 00:00:00 2001 From: Nikolaos Dimopoulos Date: Sun, 14 Jan 2024 10:22:43 -0600 Subject: [PATCH 19/21] moving code to src --- {app => src}/controllers/IndexController.php | 0 {app => src}/controllers/SignupController.php | 0 {app => src}/models/Users.php | 2 +- {app => src}/views/index.phtml | 5 +++-- {app => src}/views/index/index.phtml | 0 {app => src}/views/signup/index.phtml | 1 - {app => src}/views/signup/register.phtml | 0 7 files changed, 4 insertions(+), 4 deletions(-) rename {app => src}/controllers/IndexController.php (100%) rename {app => src}/controllers/SignupController.php (100%) rename {app => src}/models/Users.php (100%) rename {app => src}/views/index.phtml (60%) rename {app => src}/views/index/index.phtml (100%) rename {app => src}/views/signup/index.phtml (99%) rename {app => src}/views/signup/register.phtml (100%) diff --git a/app/controllers/IndexController.php b/src/controllers/IndexController.php similarity index 100% rename from app/controllers/IndexController.php rename to src/controllers/IndexController.php diff --git a/app/controllers/SignupController.php b/src/controllers/SignupController.php similarity index 100% rename from app/controllers/SignupController.php rename to src/controllers/SignupController.php diff --git a/app/models/Users.php b/src/models/Users.php similarity index 100% rename from app/models/Users.php rename to src/models/Users.php index 5d0a972..4081bf7 100644 --- a/app/models/Users.php +++ b/src/models/Users.php @@ -4,7 +4,7 @@ class Users extends Model { + public $email; public $id; public $name; - public $email; } diff --git a/app/views/index.phtml b/src/views/index.phtml similarity index 60% rename from app/views/index.phtml rename to src/views/index.phtml index 0c8c08a..116ee8f 100644 --- a/app/views/index.phtml +++ b/src/views/index.phtml @@ -3,11 +3,12 @@ Phalcon Tutorial - +
getContent(); ?>
- \ No newline at end of file + diff --git a/app/views/index/index.phtml b/src/views/index/index.phtml similarity index 100% rename from app/views/index/index.phtml rename to src/views/index/index.phtml diff --git a/app/views/signup/index.phtml b/src/views/signup/index.phtml similarity index 99% rename from app/views/signup/index.phtml rename to src/views/signup/index.phtml index 3e51bd4..8246598 100644 --- a/app/views/signup/index.phtml +++ b/src/views/signup/index.phtml @@ -17,4 +17,3 @@

tag->close('form'); ?> - diff --git a/app/views/signup/register.phtml b/src/views/signup/register.phtml similarity index 100% rename from app/views/signup/register.phtml rename to src/views/signup/register.phtml From 8232961d79809696c576eb4ae4b0af8bd47ffdef Mon Sep 17 00:00:00 2001 From: Nikolaos Dimopoulos Date: Sun, 14 Jan 2024 10:23:05 -0600 Subject: [PATCH 20/21] changed license to MIT; restructure scripts and tidied up readme --- .htaccess | 0 LICENSE | 21 +++++++++++++++++++ README.md | 53 +++++++++++++++++++++++++++++++----------------- bin/import_db.sh | 2 +- phpcs.xml | 11 ++++++++++ 5 files changed, 67 insertions(+), 20 deletions(-) mode change 100755 => 100644 .htaccess create mode 100644 LICENSE create mode 100644 phpcs.xml diff --git a/.htaccess b/.htaccess old mode 100755 new mode 100644 diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..220fd99 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020-present The Phalcon PHP Framework + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index 034c68d..2055a23 100644 --- a/README.md +++ b/README.md @@ -19,35 +19,50 @@ To run this application on your machine, you need at least: * [Nginx][4] Web Server * Latest stable [Phalcon Framework release][5] extension enabled -You can also run the application using [nanobox.io][8]. Installation instructions for nanobox can be found [here][9]. - -## Running the application +## Running the application locally * Clone the repository to a folder on your machine * Navigate to that folder -* Run `nanobox run` -* After the application compiles you will see `/app $` in your terminal. Type `php-server` to run apache -* Navigate to the IP address displayed in the console. +* Run `docker compose up -d` +* After the build process is completed, you will have the following: + * PHP 8.0 (`tutorial-8.0`) + * PHP 8.1 (`tutorial-8.1`) + * PHP 8.2 (`tutorial-8.2`) + * PHP 8.3 (`tutorial-8.3`) +* You can check the application on your local browser by finding the IP address of the chosen environment and launching it. For example, if you wish to check the PHP 8.3 environment, type the following in your terminal: + +```shell +docker inspect tutorial-8.3 +``` +This will output a JSON file, where you can find the IP address of the container on your local machine. + +```shell +... + "EndpointID": "563ba90563ffb7ad5c30689f1216ec4c2e1625d170eb0279e78c001973464691", + "Gateway": "172.29.0.1", + "IPAddress": "172.29.0.5", + "IPPrefixLen": 16, +... +``` + +Launch a browser and visit the site using that IP address (`http://172.29.0.5`) + +To enter an environment and run different commands, such as populating the database: + +```shell +docker exec -it tutorial-8.3 /bin/bash +``` ## License -Phalcon Tutorial is open-sourced software licensed under the [New BSD License][6]. © Phalcon Framework Team and +Phalcon Tutorial is open-sourced software licensed under the [MIT][6]. © Phalcon Framework Team and contributors -[1]: https://docs.phalcon.io/latest/en/tutorial-basic - +[1]: https://docs.phalcon.io/latest/tutorial-basic [2]: http://httpd.apache.org/ - [3]: http://httpd.apache.org/docs/current/mod/mod_rewrite.html - [4]: http://nginx.org/ - [5]: https://github.com/phalcon/cphalcon/releases - -[6]: https://github.com/phalcon/tutorial/blob/master/docs/LICENSE.md - +[6]: https://github.com/phalcon/tutorial/blob/master/docs/LICENSE [7]: https://github.com/phalcon/phalcon-devtools - -[8]: https://nanobox.io - -[9]: https://docs.nanobox.io/install/ +[8]: https://docker.com diff --git a/bin/import_db.sh b/bin/import_db.sh index 8993e95..adc257a 100644 --- a/bin/import_db.sh +++ b/bin/import_db.sh @@ -3,4 +3,4 @@ mysql --user=$DATA_MYSQL_USER \ --password=$DATA_MYSQL_PASS \ --host=$DATA_MYSQL_HOST \ - gonano < /app/storage/schemas/tutorial.sql + phalcon_tutorial < /code/resources/schemas/tutorial.sql diff --git a/phpcs.xml b/phpcs.xml new file mode 100644 index 0000000..ef2eab4 --- /dev/null +++ b/phpcs.xml @@ -0,0 +1,11 @@ + + + Phalcon Coding Standards + + + + + + + src + From dbba3fac161ccb50cab0aa6eb898a54f20f9a697 Mon Sep 17 00:00:00 2001 From: Nikolaos Dimopoulos Date: Sun, 14 Jan 2024 10:24:04 -0600 Subject: [PATCH 21/21] adjusting composer --- composer.json | 9 +- composer.lock | 2226 +------------------------------------------------ phpcs.xml | 11 - 3 files changed, 35 insertions(+), 2211 deletions(-) delete mode 100644 phpcs.xml diff --git a/composer.json b/composer.json index 3079c38..cb8c5f7 100644 --- a/composer.json +++ b/composer.json @@ -27,18 +27,11 @@ "pds/skeleton": "^1.0" }, "require-dev": { - "phalcon/ide-stubs": "^v5.0.1", - "squizlabs/php_codesniffer": "^3.7", - "vimeo/psalm": "^4.27" + "phalcon/ide-stubs": "^v5.0.1" }, "autoload": { "psr-4": { "Tutorial\\": "src/" } - }, - "scripts": { - "cs": "./vendor/bin/phpcs --standard=phpcs.xml", - "cs-fix": "./vendor/bin/phpcbf --standard=phpcs.xml", - "analyze": "./vendor/bin/psalm" } } diff --git a/composer.lock b/composer.lock index dbb0dcd..2c077d6 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "6ee912fe8bc51cf77708aa36fae3ad15", + "content-hash": "536b46f412f983bc807f32f6289a6a12", "packages": [ { "name": "pds/skeleton", @@ -44,2229 +44,71 @@ ], "packages-dev": [ { - "name": "amphp/amp", - "version": "v2.6.2", - "source": { - "type": "git", - "url": "https://github.com/amphp/amp.git", - "reference": "9d5100cebffa729aaffecd3ad25dc5aeea4f13bb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/amphp/amp/zipball/9d5100cebffa729aaffecd3ad25dc5aeea4f13bb", - "reference": "9d5100cebffa729aaffecd3ad25dc5aeea4f13bb", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "require-dev": { - "amphp/php-cs-fixer-config": "dev-master", - "amphp/phpunit-util": "^1", - "ext-json": "*", - "jetbrains/phpstorm-stubs": "^2019.3", - "phpunit/phpunit": "^7 | ^8 | ^9", - "psalm/phar": "^3.11@dev", - "react/promise": "^2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - } - }, - "autoload": { - "files": [ - "lib/functions.php", - "lib/Internal/functions.php" - ], - "psr-4": { - "Amp\\": "lib" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Daniel Lowrey", - "email": "rdlowrey@php.net" - }, - { - "name": "Aaron Piotrowski", - "email": "aaron@trowski.com" - }, - { - "name": "Bob Weinand", - "email": "bobwei9@hotmail.com" - }, - { - "name": "Niklas Keller", - "email": "me@kelunik.com" - } - ], - "description": "A non-blocking concurrency framework for PHP applications.", - "homepage": "https://amphp.org/amp", - "keywords": [ - "async", - "asynchronous", - "awaitable", - "concurrency", - "event", - "event-loop", - "future", - "non-blocking", - "promise" - ], - "support": { - "irc": "irc://irc.freenode.org/amphp", - "issues": "https://github.com/amphp/amp/issues", - "source": "https://github.com/amphp/amp/tree/v2.6.2" - }, - "funding": [ - { - "url": "https://github.com/amphp", - "type": "github" - } - ], - "time": "2022-02-20T17:52:18+00:00" - }, - { - "name": "amphp/byte-stream", - "version": "v1.8.1", - "source": { - "type": "git", - "url": "https://github.com/amphp/byte-stream.git", - "reference": "acbd8002b3536485c997c4e019206b3f10ca15bd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/amphp/byte-stream/zipball/acbd8002b3536485c997c4e019206b3f10ca15bd", - "reference": "acbd8002b3536485c997c4e019206b3f10ca15bd", - "shasum": "" - }, - "require": { - "amphp/amp": "^2", - "php": ">=7.1" - }, - "require-dev": { - "amphp/php-cs-fixer-config": "dev-master", - "amphp/phpunit-util": "^1.4", - "friendsofphp/php-cs-fixer": "^2.3", - "jetbrains/phpstorm-stubs": "^2019.3", - "phpunit/phpunit": "^6 || ^7 || ^8", - "psalm/phar": "^3.11.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "files": [ - "lib/functions.php" - ], - "psr-4": { - "Amp\\ByteStream\\": "lib" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Aaron Piotrowski", - "email": "aaron@trowski.com" - }, - { - "name": "Niklas Keller", - "email": "me@kelunik.com" - } - ], - "description": "A stream abstraction to make working with non-blocking I/O simple.", - "homepage": "http://amphp.org/byte-stream", - "keywords": [ - "amp", - "amphp", - "async", - "io", - "non-blocking", - "stream" - ], - "support": { - "irc": "irc://irc.freenode.org/amphp", - "issues": "https://github.com/amphp/byte-stream/issues", - "source": "https://github.com/amphp/byte-stream/tree/v1.8.1" - }, - "funding": [ - { - "url": "https://github.com/amphp", - "type": "github" - } - ], - "time": "2021-03-30T17:13:30+00:00" - }, - { - "name": "composer/package-versions-deprecated", - "version": "1.11.99.5", - "source": { - "type": "git", - "url": "https://github.com/composer/package-versions-deprecated.git", - "reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/b4f54f74ef3453349c24a845d22392cd31e65f1d", - "reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.1.0 || ^2.0", - "php": "^7 || ^8" - }, - "replace": { - "ocramius/package-versions": "1.11.99" - }, - "require-dev": { - "composer/composer": "^1.9.3 || ^2.0@dev", - "ext-zip": "^1.13", - "phpunit/phpunit": "^6.5 || ^7" - }, - "type": "composer-plugin", - "extra": { - "class": "PackageVersions\\Installer", - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "PackageVersions\\": "src/PackageVersions" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" - }, - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be" - } - ], - "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", - "support": { - "issues": "https://github.com/composer/package-versions-deprecated/issues", - "source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.5" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2022-01-17T14:14:24+00:00" - }, - { - "name": "composer/pcre", - "version": "3.1.1", - "source": { - "type": "git", - "url": "https://github.com/composer/pcre.git", - "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/00104306927c7a0919b4ced2aaa6782c1e61a3c9", - "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9", - "shasum": "" - }, - "require": { - "php": "^7.4 || ^8.0" - }, - "require-dev": { - "phpstan/phpstan": "^1.3", - "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\Pcre\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - } - ], - "description": "PCRE wrapping library that offers type-safe preg_* replacements.", - "keywords": [ - "PCRE", - "preg", - "regex", - "regular expression" - ], - "support": { - "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.1.1" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2023-10-11T07:11:09+00:00" - }, - { - "name": "composer/semver", - "version": "3.4.0", - "source": { - "type": "git", - "url": "https://github.com/composer/semver.git", - "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32", - "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32", - "shasum": "" - }, - "require": { - "php": "^5.3.2 || ^7.0 || ^8.0" - }, - "require-dev": { - "phpstan/phpstan": "^1.4", - "symfony/phpunit-bridge": "^4.2 || ^5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\Semver\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nils Adermann", - "email": "naderman@naderman.de", - "homepage": "http://www.naderman.de" - }, - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - }, - { - "name": "Rob Bast", - "email": "rob.bast@gmail.com", - "homepage": "http://robbast.nl" - } - ], - "description": "Semver library that offers utilities, version constraint parsing and validation.", - "keywords": [ - "semantic", - "semver", - "validation", - "versioning" - ], - "support": { - "irc": "ircs://irc.libera.chat:6697/composer", - "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.4.0" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2023-08-31T09:50:34+00:00" - }, - { - "name": "composer/xdebug-handler", - "version": "3.0.3", - "source": { - "type": "git", - "url": "https://github.com/composer/xdebug-handler.git", - "reference": "ced299686f41dce890debac69273b47ffe98a40c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c", - "reference": "ced299686f41dce890debac69273b47ffe98a40c", - "shasum": "" - }, - "require": { - "composer/pcre": "^1 || ^2 || ^3", - "php": "^7.2.5 || ^8.0", - "psr/log": "^1 || ^2 || ^3" - }, - "require-dev": { - "phpstan/phpstan": "^1.0", - "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^6.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Composer\\XdebugHandler\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "John Stevenson", - "email": "john-stevenson@blueyonder.co.uk" - } - ], - "description": "Restarts a process without Xdebug.", - "keywords": [ - "Xdebug", - "performance" - ], - "support": { - "irc": "irc://irc.freenode.org/composer", - "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/3.0.3" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2022-02-25T21:32:43+00:00" - }, - { - "name": "dnoegel/php-xdg-base-dir", - "version": "v0.1.1", - "source": { - "type": "git", - "url": "https://github.com/dnoegel/php-xdg-base-dir.git", - "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", - "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "require-dev": { - "phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35" - }, - "type": "library", - "autoload": { - "psr-4": { - "XdgBaseDir\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "implementation of xdg base directory specification for php", - "support": { - "issues": "https://github.com/dnoegel/php-xdg-base-dir/issues", - "source": "https://github.com/dnoegel/php-xdg-base-dir/tree/v0.1.1" - }, - "time": "2019-12-04T15:06:13+00:00" - }, - { - "name": "doctrine/deprecations", - "version": "1.1.2", - "source": { - "type": "git", - "url": "https://github.com/doctrine/deprecations.git", - "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/4f2d4f2836e7ec4e7a8625e75c6aa916004db931", - "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^9", - "phpstan/phpstan": "1.4.10 || 1.10.15", - "phpstan/phpstan-phpunit": "^1.0", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "psalm/plugin-phpunit": "0.18.4", - "psr/log": "^1 || ^2 || ^3", - "vimeo/psalm": "4.30.0 || 5.12.0" - }, - "suggest": { - "psr/log": "Allows logging deprecations via PSR-3 logger implementation" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", - "homepage": "https://www.doctrine-project.org/", - "support": { - "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/1.1.2" - }, - "time": "2023-09-27T20:04:15+00:00" - }, - { - "name": "felixfbecker/advanced-json-rpc", - "version": "v3.2.1", - "source": { - "type": "git", - "url": "https://github.com/felixfbecker/php-advanced-json-rpc.git", - "reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/felixfbecker/php-advanced-json-rpc/zipball/b5f37dbff9a8ad360ca341f3240dc1c168b45447", - "reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447", - "shasum": "" - }, - "require": { - "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", - "php": "^7.1 || ^8.0", - "phpdocumentor/reflection-docblock": "^4.3.4 || ^5.0.0" - }, - "require-dev": { - "phpunit/phpunit": "^7.0 || ^8.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "AdvancedJsonRpc\\": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "ISC" - ], - "authors": [ - { - "name": "Felix Becker", - "email": "felix.b@outlook.com" - } - ], - "description": "A more advanced JSONRPC implementation", - "support": { - "issues": "https://github.com/felixfbecker/php-advanced-json-rpc/issues", - "source": "https://github.com/felixfbecker/php-advanced-json-rpc/tree/v3.2.1" - }, - "time": "2021-06-11T22:34:44+00:00" - }, - { - "name": "felixfbecker/language-server-protocol", - "version": "v1.5.2", - "source": { - "type": "git", - "url": "https://github.com/felixfbecker/php-language-server-protocol.git", - "reference": "6e82196ffd7c62f7794d778ca52b69feec9f2842" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/6e82196ffd7c62f7794d778ca52b69feec9f2842", - "reference": "6e82196ffd7c62f7794d778ca52b69feec9f2842", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "require-dev": { - "phpstan/phpstan": "*", - "squizlabs/php_codesniffer": "^3.1", - "vimeo/psalm": "^4.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "LanguageServerProtocol\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "ISC" - ], - "authors": [ - { - "name": "Felix Becker", - "email": "felix.b@outlook.com" - } - ], - "description": "PHP classes for the Language Server Protocol", - "keywords": [ - "language", - "microsoft", - "php", - "server" - ], - "support": { - "issues": "https://github.com/felixfbecker/php-language-server-protocol/issues", - "source": "https://github.com/felixfbecker/php-language-server-protocol/tree/v1.5.2" - }, - "time": "2022-03-02T22:36:06+00:00" - }, - { - "name": "netresearch/jsonmapper", - "version": "v4.2.0", - "source": { - "type": "git", - "url": "https://github.com/cweiske/jsonmapper.git", - "reference": "f60565f8c0566a31acf06884cdaa591867ecc956" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/f60565f8c0566a31acf06884cdaa591867ecc956", - "reference": "f60565f8c0566a31acf06884cdaa591867ecc956", - "shasum": "" - }, - "require": { - "ext-json": "*", - "ext-pcre": "*", - "ext-reflection": "*", - "ext-spl": "*", - "php": ">=7.1" - }, - "require-dev": { - "phpunit/phpunit": "~7.5 || ~8.0 || ~9.0", - "squizlabs/php_codesniffer": "~3.5" - }, - "type": "library", - "autoload": { - "psr-0": { - "JsonMapper": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "OSL-3.0" - ], - "authors": [ - { - "name": "Christian Weiske", - "email": "cweiske@cweiske.de", - "homepage": "http://github.com/cweiske/jsonmapper/", - "role": "Developer" - } - ], - "description": "Map nested JSON structures onto PHP classes", - "support": { - "email": "cweiske@cweiske.de", - "issues": "https://github.com/cweiske/jsonmapper/issues", - "source": "https://github.com/cweiske/jsonmapper/tree/v4.2.0" - }, - "time": "2023-04-09T17:37:40+00:00" - }, - { - "name": "nikic/php-parser", - "version": "v4.18.0", - "source": { - "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/1bcbb2179f97633e98bbbc87044ee2611c7d7999", - "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "php": ">=7.0" - }, - "require-dev": { - "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" - }, - "bin": [ - "bin/php-parse" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.9-dev" - } - }, - "autoload": { - "psr-4": { - "PhpParser\\": "lib/PhpParser" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Nikita Popov" - } - ], - "description": "A PHP parser written in PHP", - "keywords": [ - "parser", - "php" - ], - "support": { - "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.18.0" - }, - "time": "2023-12-10T21:03:43+00:00" - }, - { - "name": "openlss/lib-array2xml", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/nullivex/lib-array2xml.git", - "reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nullivex/lib-array2xml/zipball/a91f18a8dfc69ffabe5f9b068bc39bb202c81d90", - "reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "type": "library", - "autoload": { - "psr-0": { - "LSS": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "Bryan Tong", - "email": "bryan@nullivex.com", - "homepage": "https://www.nullivex.com" - }, - { - "name": "Tony Butler", - "email": "spudz76@gmail.com", - "homepage": "https://www.nullivex.com" - } - ], - "description": "Array2XML conversion library credit to lalit.org", - "homepage": "https://www.nullivex.com", - "keywords": [ - "array", - "array conversion", - "xml", - "xml conversion" - ], - "support": { - "issues": "https://github.com/nullivex/lib-array2xml/issues", - "source": "https://github.com/nullivex/lib-array2xml/tree/master" - }, - "time": "2019-03-29T20:06:56+00:00" - }, - { - "name": "phalcon/ide-stubs", - "version": "v5.6.0", - "source": { - "type": "git", - "url": "https://github.com/phalcon/ide-stubs.git", - "reference": "0593372dcf90d311f5f861a67b0438cc44d29a23" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phalcon/ide-stubs/zipball/0593372dcf90d311f5f861a67b0438cc44d29a23", - "reference": "0593372dcf90d311f5f861a67b0438cc44d29a23", - "shasum": "" - }, - "require": { - "php": ">=7.4" - }, - "require-dev": { - "squizlabs/php_codesniffer": "3.*", - "vimeo/psalm": "^3.4" - }, - "type": "library", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Phalcon Team", - "email": "team@phalcon.io", - "homepage": "https://phalcon.io/en-us/team" - }, - { - "name": "Contributors", - "homepage": "https://github.com/phalcon/ide-stubs/graphs/contributors" - } - ], - "description": "The most complete Phalcon Framework IDE stubs library which enables autocompletion in modern IDEs.", - "homepage": "https://phalcon.io", - "keywords": [ - "Devtools", - "Eclipse", - "autocomplete", - "ide", - "netbeans", - "phalcon", - "phpstorm", - "stub", - "stubs" - ], - "support": { - "forum": "https://forum.phalcon.io/", - "issues": "https://github.com/phalcon/ide-stubs/issues", - "source": "https://github.com/phalcon/ide-stubs" - }, - "funding": [ - { - "url": "https://github.com/phalcon", - "type": "github" - }, - { - "url": "https://opencollective.com/phalcon", - "type": "open_collective" - } - ], - "time": "2024-01-09T23:54:03+00:00" - }, - { - "name": "phpdocumentor/reflection-common", - "version": "2.2.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-2.x": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" - } - ], - "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "homepage": "http://www.phpdoc.org", - "keywords": [ - "FQSEN", - "phpDocumentor", - "phpdoc", - "reflection", - "static analysis" - ], - "support": { - "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", - "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" - }, - "time": "2020-06-27T09:03:43+00:00" - }, - { - "name": "phpdocumentor/reflection-docblock", - "version": "5.3.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "622548b623e81ca6d78b721c5e029f4ce664f170" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170", - "reference": "622548b623e81ca6d78b721c5e029f4ce664f170", - "shasum": "" - }, - "require": { - "ext-filter": "*", - "php": "^7.2 || ^8.0", - "phpdocumentor/reflection-common": "^2.2", - "phpdocumentor/type-resolver": "^1.3", - "webmozart/assert": "^1.9.1" - }, - "require-dev": { - "mockery/mockery": "~1.3.2", - "psalm/phar": "^4.8" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - }, - { - "name": "Jaap van Otterdijk", - "email": "account@ijaap.nl" - } - ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "support": { - "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0" - }, - "time": "2021-10-19T17:43:47+00:00" - }, - { - "name": "phpdocumentor/type-resolver", - "version": "1.8.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "fad452781b3d774e3337b0c0b245dd8e5a4455fc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/fad452781b3d774e3337b0c0b245dd8e5a4455fc", - "reference": "fad452781b3d774e3337b0c0b245dd8e5a4455fc", - "shasum": "" - }, - "require": { - "doctrine/deprecations": "^1.0", - "php": "^7.4 || ^8.0", - "phpdocumentor/reflection-common": "^2.0", - "phpstan/phpdoc-parser": "^1.13" - }, - "require-dev": { - "ext-tokenizer": "*", - "phpbench/phpbench": "^1.2", - "phpstan/extension-installer": "^1.1", - "phpstan/phpstan": "^1.8", - "phpstan/phpstan-phpunit": "^1.1", - "phpunit/phpunit": "^9.5", - "rector/rector": "^0.13.9", - "vimeo/psalm": "^4.25" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-1.x": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - } - ], - "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", - "support": { - "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.8.0" - }, - "time": "2024-01-11T11:49:22+00:00" - }, - { - "name": "phpstan/phpdoc-parser", - "version": "1.25.0", - "source": { - "type": "git", - "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "bd84b629c8de41aa2ae82c067c955e06f1b00240" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/bd84b629c8de41aa2ae82c067c955e06f1b00240", - "reference": "bd84b629c8de41aa2ae82c067c955e06f1b00240", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "require-dev": { - "doctrine/annotations": "^2.0", - "nikic/php-parser": "^4.15", - "php-parallel-lint/php-parallel-lint": "^1.2", - "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^1.5", - "phpstan/phpstan-phpunit": "^1.1", - "phpstan/phpstan-strict-rules": "^1.0", - "phpunit/phpunit": "^9.5", - "symfony/process": "^5.2" - }, - "type": "library", - "autoload": { - "psr-4": { - "PHPStan\\PhpDocParser\\": [ - "src/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "PHPDoc parser with support for nullable, intersection and generic types", - "support": { - "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.25.0" - }, - "time": "2024-01-04T17:06:16+00:00" - }, - { - "name": "psr/container", - "version": "2.0.2", - "source": { - "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", - "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", - "shasum": "" - }, - "require": { - "php": ">=7.4.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Container\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", - "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" - ], - "support": { - "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/2.0.2" - }, - "time": "2021-11-05T16:47:00+00:00" - }, - { - "name": "psr/log", - "version": "3.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", - "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", - "shasum": "" - }, - "require": { - "php": ">=8.0.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Log\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", - "keywords": [ - "log", - "psr", - "psr-3" - ], - "support": { - "source": "https://github.com/php-fig/log/tree/3.0.0" - }, - "time": "2021-07-14T16:46:02+00:00" - }, - { - "name": "sebastian/diff", - "version": "4.0.5", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/74be17022044ebaaecfdf0c5cd504fc9cd5a7131", - "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3", - "symfony/process": "^4.2 || ^5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - } - ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": [ - "diff", - "udiff", - "unidiff", - "unified diff" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/4.0.5" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-05-07T05:35:17+00:00" - }, - { - "name": "squizlabs/php_codesniffer", - "version": "3.8.1", - "source": { - "type": "git", - "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "14f5fff1e64118595db5408e946f3a22c75807f7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/14f5fff1e64118595db5408e946f3a22c75807f7", - "reference": "14f5fff1e64118595db5408e946f3a22c75807f7", - "shasum": "" - }, - "require": { - "ext-simplexml": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": ">=5.4.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4" - }, - "bin": [ - "bin/phpcbf", - "bin/phpcs" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Greg Sherwood", - "role": "Former lead" - }, - { - "name": "Juliette Reinders Folmer", - "role": "Current lead" - }, - { - "name": "Contributors", - "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer/graphs/contributors" - } - ], - "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", - "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer", - "keywords": [ - "phpcs", - "standards", - "static analysis" - ], - "support": { - "issues": "https://github.com/PHPCSStandards/PHP_CodeSniffer/issues", - "security": "https://github.com/PHPCSStandards/PHP_CodeSniffer/security/policy", - "source": "https://github.com/PHPCSStandards/PHP_CodeSniffer", - "wiki": "https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki" - }, - "funding": [ - { - "url": "https://github.com/PHPCSStandards", - "type": "github" - }, - { - "url": "https://github.com/jrfnl", - "type": "github" - }, - { - "url": "https://opencollective.com/php_codesniffer", - "type": "open_collective" - } - ], - "time": "2024-01-11T20:47:48+00:00" - }, - { - "name": "symfony/console", - "version": "v6.0.19", - "source": { - "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "c3ebc83d031b71c39da318ca8b7a07ecc67507ed" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/c3ebc83d031b71c39da318ca8b7a07ecc67507ed", - "reference": "c3ebc83d031b71c39da318ca8b7a07ecc67507ed", - "shasum": "" - }, - "require": { - "php": ">=8.0.2", - "symfony/polyfill-mbstring": "~1.0", - "symfony/service-contracts": "^1.1|^2|^3", - "symfony/string": "^5.4|^6.0" - }, - "conflict": { - "symfony/dependency-injection": "<5.4", - "symfony/dotenv": "<5.4", - "symfony/event-dispatcher": "<5.4", - "symfony/lock": "<5.4", - "symfony/process": "<5.4" - }, - "provide": { - "psr/log-implementation": "1.0|2.0|3.0" - }, - "require-dev": { - "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/event-dispatcher": "^5.4|^6.0", - "symfony/lock": "^5.4|^6.0", - "symfony/process": "^5.4|^6.0", - "symfony/var-dumper": "^5.4|^6.0" - }, - "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/lock": "", - "symfony/process": "" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Console\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Eases the creation of beautiful and testable command line interfaces", - "homepage": "https://symfony.com", - "keywords": [ - "cli", - "command line", - "console", - "terminal" - ], - "support": { - "source": "https://github.com/symfony/console/tree/v6.0.19" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-01-01T08:36:10+00:00" - }, - { - "name": "symfony/polyfill-ctype", - "version": "v1.28.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", - "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "provide": { - "ext-ctype": "*" - }, - "suggest": { - "ext-ctype": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for ctype functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" - ], - "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-01-26T09:26:14+00:00" - }, - { - "name": "symfony/polyfill-intl-grapheme", - "version": "v1.28.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "875e90aeea2777b6f135677f618529449334a612" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612", - "reference": "875e90aeea2777b6f135677f618529449334a612", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Intl\\Grapheme\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for intl's grapheme_* functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "grapheme", - "intl", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-01-26T09:26:14+00:00" - }, - { - "name": "symfony/polyfill-intl-normalizer", - "version": "v1.28.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", - "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Intl\\Normalizer\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for intl's Normalizer class and related functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "intl", - "normalizer", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-01-26T09:26:14+00:00" - }, - { - "name": "symfony/polyfill-mbstring", - "version": "v1.28.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "42292d99c55abe617799667f454222c54c60e229" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229", - "reference": "42292d99c55abe617799667f454222c54c60e229", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "provide": { - "ext-mbstring": "*" - }, - "suggest": { - "ext-mbstring": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for the Mbstring extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-07-28T09:04:16+00:00" - }, - { - "name": "symfony/polyfill-php80", - "version": "v1.28.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5", - "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-01-26T09:26:14+00:00" - }, - { - "name": "symfony/service-contracts", - "version": "v3.0.2", - "source": { - "type": "git", - "url": "https://github.com/symfony/service-contracts.git", - "reference": "d78d39c1599bd1188b8e26bb341da52c3c6d8a66" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d78d39c1599bd1188b8e26bb341da52c3c6d8a66", - "reference": "d78d39c1599bd1188b8e26bb341da52c3c6d8a66", - "shasum": "" - }, - "require": { - "php": ">=8.0.2", - "psr/container": "^2.0" - }, - "conflict": { - "ext-psr": "<1.1|>=2" - }, - "suggest": { - "symfony/service-implementation": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.0-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\Service\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to writing services", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.0.2" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-05-30T19:17:58+00:00" - }, - { - "name": "symfony/string", - "version": "v6.0.19", + "name": "phalcon/ide-stubs", + "version": "v5.6.0", "source": { "type": "git", - "url": "https://github.com/symfony/string.git", - "reference": "d9e72497367c23e08bf94176d2be45b00a9d232a" + "url": "https://github.com/phalcon/ide-stubs.git", + "reference": "0593372dcf90d311f5f861a67b0438cc44d29a23" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/d9e72497367c23e08bf94176d2be45b00a9d232a", - "reference": "d9e72497367c23e08bf94176d2be45b00a9d232a", + "url": "https://api.github.com/repos/phalcon/ide-stubs/zipball/0593372dcf90d311f5f861a67b0438cc44d29a23", + "reference": "0593372dcf90d311f5f861a67b0438cc44d29a23", "shasum": "" }, "require": { - "php": ">=8.0.2", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-intl-grapheme": "~1.0", - "symfony/polyfill-intl-normalizer": "~1.0", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "symfony/translation-contracts": "<2.0" + "php": ">=7.4" }, "require-dev": { - "symfony/error-handler": "^5.4|^6.0", - "symfony/http-client": "^5.4|^6.0", - "symfony/translation-contracts": "^2.0|^3.0", - "symfony/var-exporter": "^5.4|^6.0" + "squizlabs/php_codesniffer": "3.*", + "vimeo/psalm": "^3.4" }, "type": "library", - "autoload": { - "files": [ - "Resources/functions.php" - ], - "psr-4": { - "Symfony\\Component\\String\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Phalcon Team", + "email": "team@phalcon.io", + "homepage": "https://phalcon.io/en-us/team" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Contributors", + "homepage": "https://github.com/phalcon/ide-stubs/graphs/contributors" } ], - "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", - "homepage": "https://symfony.com", + "description": "The most complete Phalcon Framework IDE stubs library which enables autocompletion in modern IDEs.", + "homepage": "https://phalcon.io", "keywords": [ - "grapheme", - "i18n", - "string", - "unicode", - "utf-8", - "utf8" + "Devtools", + "Eclipse", + "autocomplete", + "ide", + "netbeans", + "phalcon", + "phpstorm", + "stub", + "stubs" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.0.19" + "forum": "https://forum.phalcon.io/", + "issues": "https://github.com/phalcon/ide-stubs/issues", + "source": "https://github.com/phalcon/ide-stubs" }, "funding": [ { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", + "url": "https://github.com/phalcon", "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-01-01T08:36:10+00:00" - }, - { - "name": "vimeo/psalm", - "version": "4.30.0", - "source": { - "type": "git", - "url": "https://github.com/vimeo/psalm.git", - "reference": "d0bc6e25d89f649e4f36a534f330f8bb4643dd69" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/d0bc6e25d89f649e4f36a534f330f8bb4643dd69", - "reference": "d0bc6e25d89f649e4f36a534f330f8bb4643dd69", - "shasum": "" - }, - "require": { - "amphp/amp": "^2.4.2", - "amphp/byte-stream": "^1.5", - "composer/package-versions-deprecated": "^1.8.0", - "composer/semver": "^1.4 || ^2.0 || ^3.0", - "composer/xdebug-handler": "^1.1 || ^2.0 || ^3.0", - "dnoegel/php-xdg-base-dir": "^0.1.1", - "ext-ctype": "*", - "ext-dom": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-simplexml": "*", - "ext-tokenizer": "*", - "felixfbecker/advanced-json-rpc": "^3.0.3", - "felixfbecker/language-server-protocol": "^1.5", - "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", - "nikic/php-parser": "^4.13", - "openlss/lib-array2xml": "^1.0", - "php": "^7.1|^8", - "sebastian/diff": "^3.0 || ^4.0", - "symfony/console": "^3.4.17 || ^4.1.6 || ^5.0 || ^6.0", - "symfony/polyfill-php80": "^1.25", - "webmozart/path-util": "^2.3" - }, - "provide": { - "psalm/psalm": "self.version" - }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.2", - "brianium/paratest": "^4.0||^6.0", - "ext-curl": "*", - "php-parallel-lint/php-parallel-lint": "^1.2", - "phpdocumentor/reflection-docblock": "^5", - "phpmyadmin/sql-parser": "5.1.0||dev-master", - "phpspec/prophecy": ">=1.9.0", - "phpstan/phpdoc-parser": "1.2.* || 1.6.4", - "phpunit/phpunit": "^9.0", - "psalm/plugin-phpunit": "^0.16", - "slevomat/coding-standard": "^7.0", - "squizlabs/php_codesniffer": "^3.5", - "symfony/process": "^4.3 || ^5.0 || ^6.0", - "weirdan/prophecy-shim": "^1.0 || ^2.0" - }, - "suggest": { - "ext-curl": "In order to send data to shepherd", - "ext-igbinary": "^2.0.5 is required, used to serialize caching data" - }, - "bin": [ - "psalm", - "psalm-language-server", - "psalm-plugin", - "psalm-refactor", - "psalter" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.x-dev", - "dev-3.x": "3.x-dev", - "dev-2.x": "2.x-dev", - "dev-1.x": "1.x-dev" - } - }, - "autoload": { - "files": [ - "src/functions.php", - "src/spl_object_id.php" - ], - "psr-4": { - "Psalm\\": "src/Psalm/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Matthew Brown" - } - ], - "description": "A static analysis tool for finding errors in PHP applications", - "keywords": [ - "code", - "inspection", - "php" - ], - "support": { - "issues": "https://github.com/vimeo/psalm/issues", - "source": "https://github.com/vimeo/psalm/tree/4.30.0" - }, - "time": "2022-11-06T20:37:08+00:00" - }, - { - "name": "webmozart/assert", - "version": "1.11.0", - "source": { - "type": "git", - "url": "https://github.com/webmozarts/assert.git", - "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", - "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", - "shasum": "" - }, - "require": { - "ext-ctype": "*", - "php": "^7.2 || ^8.0" - }, - "conflict": { - "phpstan/phpstan": "<0.12.20", - "vimeo/psalm": "<4.6.1 || 4.6.2" - }, - "require-dev": { - "phpunit/phpunit": "^8.5.13" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.10-dev" - } - }, - "autoload": { - "psr-4": { - "Webmozart\\Assert\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Assertions to validate method input/output with nice error messages.", - "keywords": [ - "assert", - "check", - "validate" - ], - "support": { - "issues": "https://github.com/webmozarts/assert/issues", - "source": "https://github.com/webmozarts/assert/tree/1.11.0" - }, - "time": "2022-06-03T18:03:27+00:00" - }, - { - "name": "webmozart/path-util", - "version": "2.3.0", - "source": { - "type": "git", - "url": "https://github.com/webmozart/path-util.git", - "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozart/path-util/zipball/d939f7edc24c9a1bb9c0dee5cb05d8e859490725", - "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "webmozart/assert": "~1.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.6", - "sebastian/version": "^1.0.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.3-dev" - } - }, - "autoload": { - "psr-4": { - "Webmozart\\PathUtil\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" + "url": "https://opencollective.com/phalcon", + "type": "open_collective" } ], - "description": "A robust cross-platform utility for normalizing, comparing and modifying file paths.", - "support": { - "issues": "https://github.com/webmozart/path-util/issues", - "source": "https://github.com/webmozart/path-util/tree/2.3.0" - }, - "abandoned": "symfony/filesystem", - "time": "2015-12-17T08:42:14+00:00" + "time": "2024-01-09T23:54:03+00:00" } ], "aliases": [], diff --git a/phpcs.xml b/phpcs.xml deleted file mode 100644 index ef2eab4..0000000 --- a/phpcs.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - Phalcon Coding Standards - - - - - - - src -