Резюме PHP: основи, поради та найкращі практики

1
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 17 грудня, 2025
Досліджте, як використовувати бібліотеку PHP Résumé для створення структурованих резюме відповідно до специфікації JSON Résumé. Як ця бібліотека полегшує створення та валідацію резюме? Читайте статтю, щоб дізнатися більше

JSON Résumé — це специфікація, створена для структурування даних резюме. Використовуючи цю специфікацію, ви можете написати своє резюме в структурованому форматі та експортувати його в інші формати. Бібліотека PHP Résumé, розроблена Стівом МакДугалом, забезпечує типобезпечний спосіб створення та роботи з резюме, дотримуючись схеми JSON Résumé.

# Особливості

# Приклад специфікації JSON Résumé

{
  "basics": {
    "name": "Люк Скайуокер",
    "label": "Рицар-джедай",
    "image": "",
    "email": "luke.skywalker@rebellion.org",
    "phone": "(555) FORCE-1",
    "url": "https://jediarchives.org/luke-skywalker",
    "summary": "Фермер, який став Рицарем-джедаєм, відіграв ключову роль у перемозі над Галактичною Імперією. Досвідчений пілот, чутливий до Сили та лідер в Резистансі. Вірний відновленню миру й справедливості в галактиці.",
    "location": {
      "address": "Оселя Ларса",
      "postalCode": "N/A",
      "city": "Анкорхед",
      "countryCode": "N/A",
      "region": "Татуїн"
    },
    "profiles": [{
      "network": "HoloNet",
      "username": "farmboy_jedi",
      "url": "https://holonet.gov/luke-skywalker"
    }]
  },
  "work": [{
    "name": "Резистанс",
    "position": "Командир",
    "url": "https://rebellion.org",
    "startDate": "0000-05-25",
    "endDate": "0004-05-04",
    "summary": "Ключовий військовий лідер у боротьбі проти Галактичної Імперії, спеціалізується на операціях зі зірковими винищувачами та спеціальних місіях.",
    "highlights": [
      "Знищив першу зірку смерті",
      "Очолив Загін Опору",
      "Долучився до перемоги над імператором Палпатином"
    ]
  }],
  "education": [{
    "institution": "Академія навчання джедаїв на Дагобі",
    "url": "https://jediarchives.org/dagobah",
    "area": "Вивчення Сили та бою на світлових мечах",
    "studyType": "Навчання джедаїв",
    "startDate": "0003-01-01",
    "endDate": "0004-01-01",
    "score": "Рицар-джедай",
    "courses": [
      "Розвиток чутливості до Сили",
      "Форми бою на світлових мечах",
      "Філософія та етика джедаїв"
    ]
  }],
  "certificates": [{
    "name": "Сертифікація Рицаря-джедая",
    "date": "0004-05-04",
    "issuer": "Майстер Йода",
    "url": "https://jediarchives.org/certifications"
  }],
  "skills": [{
    "name": "Сили",
    "level": "Майстер",
    "keywords": [
      "Телепатія",
      "Ментальний трюк",
      "Передбачення",
      "Бій на світлових мечах"
    ]
  }],
  "references": [{
    "name": "Майстер Йода",
    "reference": "Сильний із Силою, молодий Скайуокер є. Терплячим і мудрим став. Справжній Рицар-джедай, баланс відновив. Гордий я ним."
  }]
}

Існують також ключі для представлення interests, publications, awards, volunteer, languages та projects. Перегляньте повний приклад схеми.

# Основний приклад використання PHP Résumé

Ви можете встановити пакет через Composer:

composer require juststeveking/resume-php

А щоб створити базове резюме, використовуйте:

use JustSteveKing\Resume\Builders\ResumeBuilder;
use JustSteveKing\Resume\DataObjects\Basics;
use JustSteveKing\Resume\DataObjects\Location;
use JustSteveKing\Resume\DataObjects\Profile;
use JustSteveKing\Resume\DataObjects\Work;
use JustSteveKing\Resume\Enums\Network;
 
// Створення секції основних даних
$basics = new Basics(
    name: 'Люк Скайуокер',
    label: 'Рицар-джедай',
    email: 'luke.skywalker@rebellion.org',
    url: 'https://jediarchives.org/luke-skywalker',
    summary: 'Фермер, який став Рицарем-джедаям, відіграв ключову роль у перемозі над Галактичною Імперією. Досвідчений пілот, чутливий до Сили та лідер в Резистансі. Вірний відновленню миру й справедливості в галактиці.',
    location: new Location(
        address: 'Оселя Ларса',
        postalCode: 'N/A',
        city: 'Анкорхед',
        countryCode: 'N/A',
        region: 'Татуїн',
    ),
    profiles: [
        new Profile(Network::GitHub, 'luke_skywalker', 'https://github.com/luke_skywalker'),
        new Profile(Network::LinkedIn, 'luke_skywalker', 'https://linkedin.com/in/luke_skywalker'),
    ],
);
 
// Створення резюме
$resume = (new ResumeBuilder())
    ->basics($basics)
    ->addWork(new Work(
        name: 'Резистанс',
        position: 'Командир',
        startDate: '0000-05-25',
        endDate: '0004-05-04',
        summary: 'Ключовий військовий лідер у боротьбі проти Галактичної Імперії, спеціалізується на операціях зі зірковими винищувачами та спеціальних місіях.',
        highlights: ['Знищив першу зірку смерті', 'Очолив Загін Опору', 'Долучився до перемоги над імператором Палпатином'],
    ))
    ->build();
 
// Конвертація у JSON
$json = json_encode($resume, JSON_PRETTY_PRINT);

Цей пакет також надає метод для перетворення вашого резюме в формат JSON-LD за допомогою методу toJsonLd(), що ідеально підходить для структурування даних, які легко сприймаються пошуковими системами та веб-сервісами. Також можна експортувати в Markdown за допомогою toMarkdown().

$resume->toJsonLd();
$resume->toMarkdown();

Також є JobDescriptionBuilder для створення структурованих описів вакансій відповідно до схеми опису професій JSON.

Дізнайтеся більше про цей пакет та перегляньте вихідний код на GitHub.

Популярні

Logomark Logotype

Перетворення даних у типобезпечні DTO за допомогою пакету Data Model

Досліджуйте новий пакет Data Model для PHP, який спрощує процес гідратації об'єктів без зайвих складнощів! Дізнайтеся, як впровадження типобезпечних об'єктів може революціонізувати ваш підхід до розробки, читаючи нашу статтю

Logomark Logotype

Що нового в PHP 8.5

PHP 8.5 обіцяє безліч нових можливостей, таких як оператор Pipe, функції `array_first()` та `array_last()`, а також нове розширення URI. Чи готові ви дізнатися, як ці функції можуть спростити вашу розробку? Читайте далі, щоб дізнатися більше про ці захоплюючі нововведення

Logomark Logotype

Створення CLI-додатка за допомогою Laravel та Docker

Зазирніть у світ Laravel, де потужний CLI-фреймворк відкриває нові можливості для розробки командного інтерфейсу. Дізнайтеся, як створити просту утиліту для перевірки акцій, яка працює з Docker, та які переваги це може принести у вашому проєкті!