Пришло время для нашей ежемесячной охоты на новые библиотеки с открытым исходным кодом, чтобы использовать и вносить свой вклад !
Если вы новичок в Sourcehunt, это наш ежемесячный пост, посвященный продвижению проектов с открытым исходным кодом, которые кажутся интересными или многообещающими и могут использовать помощь с точки зрения звезд Github или запросов запросов.
Это наш способ дать отпор — продвигать проекты, которые мы используем (или могли бы использовать), чтобы они получили достаточно информации, чтобы привлечь более широкую аудиторию, мощное сообщество и, возможно, новых спонсоров или спонсоров.
Laracademy / Interactive-Make [216 ★]
Laravel Interactive Make — это плагин, который позволяет вам использовать команду make Laravel в интерактивном режиме, не вдаваясь в подробности о том, что именно вы хотите сгенерировать, как показано в следующем gif:
Инструмент будет спрашивать вас о командах и подкомандах, пока вы не достигнете точки, в которой вы довольны тем, что было сгенерировано. Больше не нужно искать команды 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();
А вот как нарисовать это изображение:
<?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 — учебника по всему этому.
Свяжитесь, чтобы узнать, сколько это стоит для нас!
Удачного кодирования!