Browse Source

added composer.json

added composer.json
guddles 2 năm trước cách đây
mục cha
commit
9021351c96
2 tập tin đã thay đổi với 216 bổ sung1 xóa
  1. 197 1
      README.md
  2. 19 0
      composer.json

+ 197 - 1
README.md

@@ -1,2 +1,198 @@
-# Homework
+# Набор зависимостей для проекта, в котором:
 
+### 1. Используется БД для хранения данных
+[illuminate/database](https://packagist.org/packages/illuminate/database)
+
+Пакет для работы с БД. В настоящее время поддерживаются MySQL, Postgres, SQL Server, SQLite.
+
+
+Создание объекта класса Capsule и инициализация этого объекта констанстами:
+
+```php
+//php code 
+use Illuminate\Database\Capsule\Manager as Capsule;
+$dotenv = new Dotenv\Dotenv('/.env');
+$dotenv->load();
+$capsule = new Capsule;
+$capsule->addConnection([
+  'driver' => getenv(DB_CONNECTION),
+  'host' => getenv(DB_HOST),
+  'database' => getenv(DB_DATABASE),
+  'username' => getenv(DB_USERNAME),
+  'password' => getenv(DB_PASSWORD),
+  'charset' => 'utf8',
+  'collation' => 'utf8_unicode_ci',
+  'prefix' => '',
+]);
+  // Установка ORM Eloquent
+  $capsule->bootEloquent();
+}
+```
+
+Использование ORM Eloquent:
+
+```php
+  //php code
+  class User extends Illuminate\Database\Eloquent\Model {}
+  $users = User::where('verified', '=', TRUE)->get();
+```
+
+
+### 2. Используется кеш в памяти для временного хранения сложных запросов к БД
+[watson/rememberable](https://packagist.org/packages/watson/rememberable)
+
+Кэширование запросов для Laravel. Результаты запросов кэшируются в течение заданного промежутка времени.
+
+Получить статьи первого пользователя и запомнить их на 6 часов :
+
+```php
+//php code 
+User::first()->remember(360)->posts()->get();
+```
+
+### 3. Формируются XLS-отчеты на основе данных
+[phpoffice/phpspreadsheet](https://packagist.org/packages/phpoffice/phpspreadsheet)
+Библиотека предоставляющая набор классов для чтения и записи различных форматов файлов электронных таблиц.
+
+### 4. Формируются PDF-документы на основе данных
+[tecnickcom/tcpdf](https://packagist.org/packages/tecnickcom/tcpdf)
+PHP библиотека для генерации PDF документов
+
+### 5. Отправляются SMS-сообщения для верификации пользователей
+[symfony/mailer](https://packagist.org/packages/symfony/mailer)
+
+PHP обетка для API Twilio.
+
+Отправка sms:
+
+```php
+    // php code
+    // Required if your environment does not handle autoloading
+    require __DIR__ . '/vendor/autoload.php';
+
+    // Use the REST API Client to make requests to the Twilio REST API
+    use Twilio\Rest\Client;
+
+    // Your Account SID and Auth Token from twilio.com/console
+    $sid = 'ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
+    $token = 'your_auth_token';
+    $client = new Client($sid, $token);
+
+    // Use the client to do fun stuff like send text messages!
+    $client->messages->create(
+        // the number you'd like to send the message to
+        '+15558675309',
+        [
+            // A Twilio phone number you purchased at twilio.com/console
+            'from' => '+15017250604',
+            // the body of the text message you'd like to send
+            'body' => 'Hey Jenny! Good luck on the bar exam!'
+        ]
+    );
+```
+
+### 6. Отправляются E-mail-уведомления и рассылки для пользователей
+[swiftmailer/swiftmailer](https://packagist.org/packages/swiftmailer/swiftmailer)
+
+Библиотека для отправки электронных сообщений.
+
+Пример отправки сообщения:
+
+```php
+require_once '/path/to/vendor/autoload.php';
+$transport = (new Swift_SmtpTransport('smtp.hostname', 25))
+  ->setUsername('username')
+  ->setPassword('password')
+;
+$mailer = new Swift_Mailer($transport);
+$message = (new Swift_Message('Wonderful Subject'))
+  ->setFrom(['john@doe.com' => 'John Doe'])
+  ->setTo(['receiver@domain.org', 'other@domain.org' => 'A name'])
+  ->setBody('Here is the message itself')
+  ;
+$result = $mailer->send($message);
+```
+
+### 7. Используется облачное хранилище AWS S3 или Windows Azure Blob для статичных файлов
+[aws/aws-sdk-php](https://packagist.org/packages/aws/aws-sdk-php)
+
+Пакет для создание php-приложений с использованием сервисов Amazon (Amazon S3, Amazon DynamoDB, Amazon Glacier)
+
+```php
+// php code
+require 'vendor/autoload.php';
+use Aws\S3\S3Client;
+// Настройка клиента для S3, указание региона и последней версии
+$s3 = new Aws\S3\S3Client([
+    'version' => 'latest',
+    'region'  => 'us-east-1'
+]);
+// Отправка запроса PutObject
+$s3Client->putObject([
+    'Bucket' => 'bucket',
+    'Key'    => 'key',
+    'Body'   => 'body'
+]);
+// Загрузка объекта
+$result = $s3Client->getObject([
+    'Bucket' => 'bucket',
+    'Key'    => 'key'
+]);
+// Удаление контейнера
+$client->deleteBucket([
+    'Bucket' => 'test-bucket',
+]);
+```
+
+### 8. Используется интеграция со службой доставки для расчета стоимости (например, PickPoint или Почта России)
+[domatskiy/pickpoint](https://packagist.org/packages/domatskiy/pickpoint)
+
+PickPoint API
+
+### 9. Используется интеграция с социальными сетями для авторизации пользователей
+[hybridauth/hybridauth](https://packagist.org/packages/hybridauth/hybridauth)
+
+PHP библиотека для интеграции с социальными сетями. Возможна авторизация на сойте через Facebook, Twitter и Google.
+
+Аутентификация с помощью GitHub:
+
+```php
+// php code
+include 'vendor/autoload.php';
+$config = [
+    'callback' => 'https://example.com/path/to/script.php',
+    'keys' => [ 'id' => 'your-app-id', 'secret' => 'your-app-secret' ]
+];
+$github = new Hybridauth\Provider\GitHub($config);
+$github->authenticate();
+$userProfile = $github->getUserProfile();
+```
+
+### 10. Данные о товарах регулярно отправляются в Яндекс.Маркет
+[yandex-market/yandex-market-php-partner](https://packagist.org/packages/yandex-market/yandex-market-php-partner)
+Партнерский API Яндекс.Маркета
+
+### 11. Принимается онлайн-оплата от покупателей
+[trustly/trustly-client-php](https://packagist.org/packages/trustly/trustly-client-php)
+Релизация онлайн-платежей.
+
+### 12. Применяются средства тестирования (например, PHPUnit)
+[phpunit/phpunit](https://packagist.org/packages/phpunit/phpunit)
+PHP фреймворк для модульного тестирования.
+
+```php
+use PHPUnit\Framework\TestCase;
+class StackTest extends TestCase
+{
+  public function testPushAndPop()
+  {
+    $stack = [];
+    $this->assertSame(0, count($stack));
+    array_push($stack, 'foo');
+    $this->assertSame('foo', $stack[count($stack)-1]);
+    $this->assertSame(1, count($stack));
+    $this->assertSame('foo', array_pop($stack));
+    $this->assertSame(0, count($stack));
+  }
+}
+```

+ 19 - 0
composer.json

@@ -0,0 +1,19 @@
+{
+    "require": {
+        "monolog/monolog": "^3.2",
+        "illuminate/database": "^9.32",
+        "watson/rememberable": "^6.0",
+        "phpoffice/phpspreadsheet": "^1.25",
+        "tecnickcom/tcpdf": "^6.5",
+        "twilio/sdk": "^6.42",
+        "symfony/mailer": "^6.1",
+        "aws/aws-sdk-php": "^3.237",
+        "domatskiy/pickpoint": "^0.4.1",
+        "hybridauth/hybridauth": "^3.8",
+        "yandex-market/yandex-market-php-partner": "^2.4",
+        "trustly/trustly-client-php": "^2021.1"
+    },
+    "require-dev": {
+        "phpunit/phpunit": "^9.5"
+    }
+}