Brak opisu

guddles 9021351c96 added composer.json 2 lat temu
README.md 9021351c96 added composer.json 2 lat temu
composer.json 9021351c96 added composer.json 2 lat temu
index.php 89e4c9f236 added files 2 lat temu
test2.txt 1deb9c49b0 Обновить 'test2.txt' 2 lat temu
welcome.php 89e4c9f236 added files 2 lat temu

README.md

Набор зависимостей для проекта, в котором:

1. Используется БД для хранения данных

illuminate/database

Пакет для работы с БД. В настоящее время поддерживаются MySQL, Postgres, SQL Server, SQLite.

Создание объекта класса Capsule и инициализация этого объекта констанстами:

//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 code
  class User extends Illuminate\Database\Eloquent\Model {}
  $users = User::where('verified', '=', TRUE)->get();

2. Используется кеш в памяти для временного хранения сложных запросов к БД

watson/rememberable

Кэширование запросов для Laravel. Результаты запросов кэшируются в течение заданного промежутка времени.

Получить статьи первого пользователя и запомнить их на 6 часов :

//php code 
User::first()->remember(360)->posts()->get();

3. Формируются XLS-отчеты на основе данных

phpoffice/phpspreadsheet Библиотека предоставляющая набор классов для чтения и записи различных форматов файлов электронных таблиц.

4. Формируются PDF-документы на основе данных

tecnickcom/tcpdf PHP библиотека для генерации PDF документов

5. Отправляются SMS-сообщения для верификации пользователей

symfony/mailer

PHP обетка для API Twilio.

Отправка sms:

    // 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

Библиотека для отправки электронных сообщений.

Пример отправки сообщения:

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

Пакет для создание php-приложений с использованием сервисов Amazon (Amazon S3, Amazon DynamoDB, Amazon Glacier)

// 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

PickPoint API

9. Используется интеграция с социальными сетями для авторизации пользователей

hybridauth/hybridauth

PHP библиотека для интеграции с социальными сетями. Возможна авторизация на сойте через Facebook, Twitter и Google.

Аутентификация с помощью GitHub:

// 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 Партнерский API Яндекс.Маркета

11. Принимается онлайн-оплата от покупателей

trustly/trustly-client-php Релизация онлайн-платежей.

12. Применяются средства тестирования (например, PHPUnit)

phpunit/phpunit 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));
  }
}