Статьи

Можете ли вы создать приложение Laravel для рисования изображений с помощью этих пакетов?

Пришло время для нашей ежемесячной охоты на новые библиотеки с открытым исходным кодом, чтобы использовать и вносить свой вклад !

Если вы новичок в Sourcehunt, это наш ежемесячный пост, посвященный продвижению проектов с открытым исходным кодом, которые кажутся интересными или многообещающими и могут использовать помощь с точки зрения звезд Github или запросов запросов.

Это наш способ дать отпор — продвигать проекты, которые мы используем (или могли бы использовать), чтобы они получили достаточно информации, чтобы привлечь более широкую аудиторию, мощное сообщество и, возможно, новых спонсоров или спонсоров.

Sourcehunt логотип


Laracademy / Interactive-Make [216 ★]

Laravel Interactive Make — это плагин, который позволяет вам использовать команду make Laravel в интерактивном режиме, не вдаваясь в подробности о том, что именно вы хотите сгенерировать, как показано в следующем gif:

Gif of Laravel Interactive Сделай в действии

Инструмент будет спрашивать вас о командах и подкомандах, пока вы не достигнете точки, в которой вы довольны тем, что было сгенерировано. Больше не нужно искать команды make

Есть некоторые проблемы, о которых нужно позаботиться, так что помогите!


reibengu / laravel-auto-validation [45 ★]

Этот пакет позволит вам удалить всю ручную валидацию из контроллеров Laravel и вместо этого полагаться на автоматическую валидацию, которая мгновенно вступает в действие при вызове данного контроллера и метода — все, что вам нужно сделать, это использовать черту пакета в контроллере и установить поставщик услуг. Затем вы определяете правила следующим образом:

 $rules = [
    'UserController' => [
        'register' => [
            'name'     => 'required|max:255',
            'email'    => ['required', 'email', 'max:255', Rule::unique('users')->where('status', 1)],
            'password' => 'required|min:6|confirmed',
            'gender'   => 'required|in:male,female',
            'birthday' => 'required|date_format:Y-n-j',
        ],
        'update' => function ($request) {
            return [
                'name'     => 'required|max:255',
                'email'    => 'required|email|max:255|unique:users,email,'.$request->user()->id,
                'gender'   => 'required|in:male,female',
                'birthday' => 'required|date_format:Y-n-j',
            ];
        },
    ],
];

return ['rules' => $rules];

Остальная часть процесса выполняется автоматически, и если проверка не проходит, запрос автоматически перенаправляется обратно на страницу, откуда он пришел, с сообщениями об ошибках проверки, перенесенными в сеанс.

В проекте нет нерешенных вопросов или запросов на выдачу, но почему бы не добавить их? Вот идея: упростить настройку этих сообщений об ошибках и интегрировать их с переводчиком Laravel.


delight-im / PHP-PrivacyPolicy [26 ★]

В каком-то странном случае PHP-PrivacyPolicy — это инструмент, который программно генерирует политику конфиденциальности и соответствующие документы для приложений, цифровых инструментов и ресурсов как в удобочитаемой для человека, так и в машинно-ориентированной форме .

Идите дальше и добавьте еще один или два абзаца, которые, по вашему мнению, могут понадобиться в один прекрасный день, или даже превратите их в SaaS и позвольте людям создавать политики в Интернете.


ож / мерзавец [7 ★]

Этот инструмент, устанавливаемый из командной строки на основе Python, может быть запущен в клонированных репозиториях на вашем компьютере, чтобы вычислить информацию о вкладчиках и назначить оценки всем вовлеченным людям.

Вот пример выходных данных, взятых из их README:

 $ git score
name              commits  delta    (+)    (-)  files
Ozh                  2230  47906  66188  18282    500
Léo Colombaro         145   1038  15438  14400     84
lesterchan             43    553   1366    813     24
Nic Waller             13    322    434    112      5
BestNa.me Labs         12     10     21     11      4
Preovaleo              11     -5     28     33      7
Clayton Daley           9     13     29     16      2
Diftraku                8      0     16     16      8
Audrey                  4     10     21     11      4

Никаких нерешенных вопросов или PR, но, вероятно, было бы интересно обновить его, добавив некоторую дополнительную статистику для отслеживания — например, рендеринг активности для каждого пользователя на консоли, подобный графику активности на Github.com, был бы весьма полезен.


Banago / PHPloy [1,119 ★]

PHPloy, заслуживает упоминания здесь, несмотря на то, что он уже довольно популярный пакет. PHPloy решает очень знакомую проблему при развертывании через (S) FTP, когда пользователи редко знают точно, какие файлы они изменили, поэтому они часто предпочитают просто повторно загрузить весь проект. Вначале это не имеет большого значения, но по мере роста проекта сложность инкрементных обновлений растет экспоненциально с ним, и зачем тратить время на это, когда для этого так легко использовать существующую функциональность Git?

PHPloy обнаруживает изменения между коммитами и только выдает измененные файлы онлайн. Он поддерживает несколько серверов, субмодулей и откатов.


joseluisq / gimage [112 ★]

Gimage, еще одна проблема и пакет без PR, представляет собой инструмент для быстрой сборки изображений с помощью PHP и собственной библиотеки GD (расширение).

Gimage предоставляет свободный интерфейс для редактирования и рисования изображений и представляет собой немного более чем естественную для восприятия человека абстракцию вокруг собственных методов GD.

Например, вот как нарисовать зеленый эллипс:

 use GImage\Figure;

// Setting ellipse sizes
$ellipse = new Figure(500, 300);
$ellipse
    // Set ellipse type
    ->isEllipse()
    // Setting a green RGB color
    ->setBackgroundColor(170, 188, 147)
    // Creating the figure
    ->create()
    // Outputting image (PNG Figure by default) on the browser.
    ->output();

А вот как нарисовать это изображение:

Пример изображения, созданного Gimage

 <?php

use GImage\Image;
use GImage\Text;
use GImage\Figure;
use GImage\Canvas;

$avatar_image = new Image();
$avatar_image
    ->load('http://www.gravatar.com/avatar/205e460b479e2e5b48aec07710c08d50?s=100.jpg')
    ->setTop(60)
    ->setLeft(70);

$about_text = new Text("MY AWESOME PRESENTATION CARD GENERATED WITH GIMAGE");
$about_text
    ->setSize(16)
    ->setWidth(300)
    ->setLeft(210)
    ->setTop(75)
    ->setColor(204, 164, 116)
    ->setFontface('fonts/Lato-Light.ttf');

$twitter_text = new Text('@username');
$twitter_text
    ->setSize(11)
    ->setWidth(70)
    ->setLeft(450)
    ->setTop(210)
    ->setColor(130, 127, 125)
    ->setFontface('fonts/Lato-Regular.ttf');

$canvas_figure = new Figure(550, 250);
$canvas_figure
    ->setBackgroundColor(47, 42, 39)
    ->create();

$avatar_box = new Figure($avatar_image->getWidth() + 16, $avatar_image
    ->getHeight() + 17);
$avatar_box
    ->setBackgroundColor(63, 56, 52)
    ->setLeft($avatar_image->getLeft() - 7)
    ->setTop($avatar_image->getTop() - 8)
    ->create();

$avatar_box2 = new Figure($avatar_image->getWidth() + 3, $avatar_image
    ->getHeight() + 19);
$avatar_box2
    ->setBackgroundColor(79, 72, 67)
    ->setLeft($avatar_image->getLeft() + 7)
    ->setTop($avatar_image->getTop() - 9)
    ->create();

$avatar_box3 = new Figure(120, 240);
$avatar_box3
    ->setBackgroundColor(63, 56, 52)
    ->create();

$line_vertical = new Figure(600, 10);
$line_vertical
    ->setBackgroundColor(119, 99, 77)
    ->setTop(240)
    ->create();

$line_horizontal = new Figure(1, 240);
$line_horizontal
    ->setBackgroundColor(79, 72, 67)
    ->setLeft(120)
    ->create();

$canvas = new Canvas($canvas_figure);
$canvas
    ->append([
      $line_horizontal,
      $avatar_box2,
      $avatar_box3,
      $avatar_box,
      $avatar_image,
      $about_text,
      $twitter_text,
      $line_vertical
    ])
    ->toPNG()
    ->draw()
    ->save('./card.png');

Дальнейшие примеры можно увидеть здесь .

Библиотека нуждается в большем количестве примеров использования, так что доберитесь до нее!


Вот и все на май. Нашли что-нибудь, во что вы могли бы погрузить зубы?

Как всегда, пожалуйста, напишите нам свои ссылки с хэштегом #sourcehunt ! Если вы создаете что-то с помощью проектов, о которых мы упоминали, или если вы отправляете сложный запрос на извлечение, о котором хотите поговорить, напишите нам, и мы позаботимся о том, чтобы об этом знал весь мир!

Как и в прошлый раз (кстати, этот вызов остается невостребованным — у вас есть 500 долларов, если вы это сделаете!), Мы используем вышеуказанные пакеты для вдохновения при создании потенциально полезного приложения или двух:

Приложение + Учебное пособие идеи месяца:

  • приложение, которое использует интерактивный make для добавления новой команды «рисовать изображение» и интерактивно спрашивает пользователя о типе изображения для рисования, используя Gimage. Ввод пользователя должен быть проверен с автоматической проверкой.
  • или приложение, которое позволяет людям создавать политики конфиденциальности в интерактивном режиме с помощью PHP-PrivacyPolicy и развертывается с помощью PHPloy — учебника по всему этому.

Свяжитесь, чтобы узнать, сколько это стоит для нас!

Удачного кодирования!