{"id":382,"date":"2026-03-16T00:00:00","date_gmt":"2026-03-15T23:00:00","guid":{"rendered":"https:\/\/helloblog.io\/hu\/wp-composer-wpackagist-helyett\/"},"modified":"2026-03-16T00:00:00","modified_gmt":"2026-03-15T23:00:00","slug":"wp-composer-wpackagist-helyett","status":"publish","type":"post","link":"https:\/\/helloblog.io\/hu\/wp-composer-wpackagist-helyett\/","title":{"rendered":"WP Composer: f\u00fcggetlen, ny\u00edlt forr\u00e1s\u00fa Composer repository WordPress b\u0151v\u00edtm\u00e9nyekhez \u00e9s sablonokhoz (WPackagist helyett)"},"content":{"rendered":"\n<p>A WordPress-es Composer workflow \u00e9vek \u00f3ta ugyanarra a pill\u00e9rre t\u00e1maszkodott: WPackagist. Sokunkn\u00e1l ez volt a \u201edefault\u201d megold\u00e1s arra, hogy a WordPress.org k\u00f6nyvt\u00e1r ingyenes b\u0151v\u00edtm\u00e9nyeit \u00e9s sablonjait ugyan\u00fagy tudjuk verzi\u00f3zni \u00e9s telep\u00edteni, mint b\u00e1rmilyen m\u00e1s PHP csomagot.<\/p>\n\n\n\n<p>2026 m\u00e1rcius\u00e1ban azonban a WPackagist a WP Engine tulajdon\u00e1ba ker\u00fclt. \u00c9s itt nem csak egy tulajdonosv\u00e1lt\u00e1sr\u00f3l van sz\u00f3: ha egy ennyire k\u00f6zponti fejleszt\u0151i infrastrukt\u00fara egyetlen c\u00e9g kontrollja al\u00e1 ker\u00fcl, az hossz\u00fa t\u00e1von kock\u00e1zatot jelent \u00e1tl\u00e1that\u00f3s\u00e1gban, ir\u00e1ny\u00edt\u00e1sban \u00e9s fenntarthat\u00f3s\u00e1gban is. Erre a helyzetre sz\u00fcletett v\u00e1laszk\u00e9nt a <strong>WP Composer<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Mi az a WP Composer, \u00e9s mi\u00e9rt \u00e9rdekes fejleszt\u0151k\u00e9nt?<\/h2>\n\n\n\n<p>A <strong>WP Composer<\/strong> (https:\/\/wp-composer.com) egy f\u00fcggetlen, k\u00f6z\u00f6ss\u00e9g \u00e1ltal finansz\u00edrozott, <strong>teljesen ny\u00edlt forr\u00e1s\u00fa<\/strong> Composer repository WordPress b\u0151v\u00edtm\u00e9nyekhez \u00e9s sablonokhoz. A Roots csapata \u00e9p\u00edti \u00e9s \u00fczemelteti, \u00e9s a c\u00e9lja nagyon egy\u00e9rtelm\u0171: legyen egy transzparens, v\u00e1llalati kontrollt\u00f3l f\u00fcggetlen alternat\u00edva, ami technikailag is korszer\u0171bb, mint amit eddig megszoktunk.<\/p>\n\n\n\n<p>A h\u00e1tt\u00e9rhez hozz\u00e1tartozik, hogy a WPackagistot eredetileg az Outlandish k\u00e9sz\u00edtette, \u00e9s hossz\u00fa ideig \u0151k tartott\u00e1k karban. Az utols\u00f3 id\u0151szakban viszont egyre ink\u00e1bb \u00e9rz\u0151d\u00f6tt a projekt elhanyagol\u00e1sa: lassabb friss\u00edt\u00e9sek, korl\u00e1tozott karbantart\u00e1s, \u00e9s kev\u00e9s \u00e9rdemi k\u00f6z\u00f6ss\u00e9gi belesz\u00f3l\u00e1s. A felv\u00e1s\u00e1rl\u00e1s ezekre a k\u00e9rd\u0151jelekre m\u00e9g r\u00e1tett egy lap\u00e1ttal.<\/p>\n\n\n\n<p>Tov\u00e1bbi kellemetlen bizonytalans\u00e1g, hogy nem teljesen egy\u00e9rtelm\u0171, a WPackagist mennyire tekinthet\u0151 ma \u201eigaz\u00e1n\u201d ny\u00edlt forr\u00e1s\u00fanak: a GitHubon el\u00e9rhet\u0151 repository (https:\/\/github.com\/outlandishideas\/wpackagist) m\u00e1r nem t\u00fckr\u00f6zi egy\u00e9rtelm\u0171en az \u00e9l\u0151 szolg\u00e1ltat\u00e1s \u00e1llapot\u00e1t.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Mit ad a WP Composer a gyakorlatban?<\/h2>\n\n\n\n<p>A WP Composer c\u00e9lzottan a WordPress.org k\u00f6nyvt\u00e1r ingyenes b\u0151v\u00edtm\u00e9nyeit \u00e9s sablonjait teszi el\u00e9rhet\u0151v\u00e9 Composerb\u0151l, tiszt\u00e1bb csomagn\u00e9vkioszt\u00e1ssal.<\/p>\n\n\n\n<p>A csomagok elnevez\u00e9se egyszer\u0171:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>B\u0151v\u00edtm\u00e9nyek: <code>wp-plugin\/*<\/code><\/li>\n\n\n<li>Sablonok: <code>wp-theme\/*<\/code><\/li>\n\n<\/ul>\n\n\n\n<p>Ezzel elt\u0171nik az eddig sok helyen megszokott <code>wpackagist-plugin\/&lt;em&gt;<\/code> \u00e9s <code>wpackagist-theme\/&lt;\/em&gt;<\/code> prefixel\u00e9s, \u00e9s a <code>composer.json<\/code> is \u00e1tl\u00e1that\u00f3bb lesz.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>{\n  &quot;repositories&quot;: [\n    {\n      &quot;name&quot;: &quot;wp-composer&quot;,\n      &quot;type&quot;: &quot;composer&quot;,\n      &quot;url&quot;: &quot;https:\/\/repo.wp-composer.com&quot;,\n      &quot;only&quot;: [&quot;wp-plugin\/*&quot;, &quot;wp-theme\/*&quot;]\n    }\n  ],\n  &quot;require&quot;: {\n    &quot;wp-plugin\/woocommerce&quot;: &quot;^10.0&quot;,\n    &quot;wp-theme\/twentytwentyfive&quot;: &quot;^1.0&quot;\n  }\n}\n\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color:#79B8FF\">  \"repositories\"<\/span><span style=\"color:#E1E4E8\">: [<\/span><\/span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color:#79B8FF\">      \"name\"<\/span><span style=\"color:#E1E4E8\">: <\/span><span style=\"color:#9ECBFF\">\"wp-composer\"<\/span><span style=\"color:#E1E4E8\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color:#79B8FF\">      \"type\"<\/span><span style=\"color:#E1E4E8\">: <\/span><span style=\"color:#9ECBFF\">\"composer\"<\/span><span style=\"color:#E1E4E8\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color:#79B8FF\">      \"url\"<\/span><span style=\"color:#E1E4E8\">: <\/span><span style=\"color:#9ECBFF\">\"https:\/\/repo.wp-composer.com\"<\/span><span style=\"color:#E1E4E8\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color:#79B8FF\">      \"only\"<\/span><span style=\"color:#E1E4E8\">: [<\/span><span style=\"color:#9ECBFF\">\"wp-plugin\/*\"<\/span><span style=\"color:#E1E4E8\">, <\/span><span style=\"color:#9ECBFF\">\"wp-theme\/*\"<\/span><span style=\"color:#E1E4E8\">]<\/span><\/span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">  ],<\/span><\/span>\n<span class=\"line\"><span style=\"color:#79B8FF\">  \"require\"<\/span><span style=\"color:#E1E4E8\">: {<\/span><\/span>\n<span class=\"line\"><span style=\"color:#79B8FF\">    \"wp-plugin\/woocommerce\"<\/span><span style=\"color:#E1E4E8\">: <\/span><span style=\"color:#9ECBFF\">\"^10.0\"<\/span><span style=\"color:#E1E4E8\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color:#79B8FF\">    \"wp-theme\/twentytwentyfive\"<\/span><span style=\"color:#E1E4E8\">: <\/span><span style=\"color:#9ECBFF\">\"^1.0\"<\/span><\/span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">  }<\/span><\/span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Fontos, hogy a WP Composer kifejezetten j\u00f3l illeszkedik a Roots WordPress core csomagjai mell\u00e9 is. Itt h\u00e1rom csomag j\u00f6n k\u00e9pbe:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li><code>roots\/wordpress<\/code> (https:\/\/wp-composer.com\/roots-wordpress)<\/li>\n\n\n<li><code>roots\/wordpress-full<\/code><\/li>\n\n\n<li><code>roots\/wordpress-no-content<\/code><\/li>\n\n<\/ul>\n\n\n\n<p>Egy tipikus Bedrock (https:\/\/roots.io\/bedrock\/) projekt p\u00e9ld\u00e1ul a WordPress core-t <code>roots\/wordpress<\/code>-szel kezeli, m\u00edg b\u0151v\u00edtm\u00e9nyekhez \u00e9s sablonokhoz a WP Composer repository-t haszn\u00e1lja.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00c1t\u00e1ll\u00e1s WPackagistr\u00f3l: a minim\u00e1lis l\u00e9p\u00e9sek (parancsokkal)<\/h2>\n\n\n\n<p>Ha megl\u00e9v\u0151 projektben WPackagistot haszn\u00e1lsz, az \u00e1t\u00e1ll\u00e1s l\u00e9nyeg\u00e9ben h\u00e1rom l\u00e9p\u00e9s. A logika: el\u0151sz\u00f6r kiszeded a r\u00e9gi prefix\u0171 csomagokat, ut\u00e1na repo csere, v\u00e9g\u00fcl felveszed az \u00faj n\u00e9ven a csomagokat.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1) WPackagist csomagok elt\u00e1vol\u00edt\u00e1sa<\/h3>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>composer remove wpackagist-plugin\/woocommerce wpackagist-theme\/twentytwentyfive\n\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#B392F0\">composer<\/span><span style=\"color:#9ECBFF\"> remove<\/span><span style=\"color:#9ECBFF\"> wpackagist-plugin\/woocommerce<\/span><span style=\"color:#9ECBFF\"> wpackagist-theme\/twentytwentyfive<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">2) Repository csere a Composer configban<\/h3>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>composer config --unset repositories.wpackagist &amp;&amp; composer config repositories.wp-composer composer https:\/\/repo.wp-composer.com\n\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#B392F0\">composer<\/span><span style=\"color:#9ECBFF\"> config<\/span><span style=\"color:#79B8FF\"> --unset<\/span><span style=\"color:#9ECBFF\"> repositories.wpackagist<\/span><span style=\"color:#E1E4E8\"> &#x26;&#x26; <\/span><span style=\"color:#B392F0\">composer<\/span><span style=\"color:#9ECBFF\"> config<\/span><span style=\"color:#9ECBFF\"> repositories.wp-composer<\/span><span style=\"color:#9ECBFF\"> composer<\/span><span style=\"color:#9ECBFF\"> https:\/\/repo.wp-composer.com<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">3) Csomagok felv\u00e9tele az \u00faj <code>wp-plugin\/&lt;em&gt;<\/code> \u00e9s <code>wp-theme\/&lt;\/em&gt;<\/code> n\u00e9vvel<\/h3>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>composer require wp-plugin\/woocommerce wp-theme\/twentytwentyfive\n\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#B392F0\">composer<\/span><span style=\"color:#9ECBFF\"> require<\/span><span style=\"color:#9ECBFF\"> wp-plugin\/woocommerce<\/span><span style=\"color:#9ECBFF\"> wp-theme\/twentytwentyfive<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Ha nem k\u00e9zzel szerkeszten\u00e9d \u00e9s vad\u00e1szn\u00e1d v\u00e9gig a <code>composer.json<\/code>-t, van egy automata migr\u00e1ci\u00f3s script is, ami friss\u00edti a be\u00e1ll\u00edt\u00e1sokat:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>curl -sO https:\/\/raw.githubusercontent.com\/roots\/wp-composer\/main\/scripts\/migrate-from-wpackagist.sh &amp;&amp; bash migrate-from-wpackagist.sh\n\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#B392F0\">curl<\/span><span style=\"color:#79B8FF\"> -sO<\/span><span style=\"color:#9ECBFF\"> https:\/\/raw.githubusercontent.com\/roots\/wp-composer\/main\/scripts\/migrate-from-wpackagist.sh<\/span><span style=\"color:#E1E4E8\"> &#x26;&#x26; <\/span><span style=\"color:#B392F0\">bash<\/span><span style=\"color:#9ECBFF\"> migrate-from-wpackagist.sh<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Aki GitHub Actionnel k\u00f6veti a b\u0151v\u00edtm\u00e9nyfriss\u00edt\u00e9seket \u00e9s changelogokat, annak is van j\u00f3 h\u00edr: a kor\u00e1bbi WPackagist Changelog Action \u00e1tnevezve \u00e9s friss\u00edtve el\u00e9rhet\u0151 <strong>WP Composer Changelog Action<\/strong> n\u00e9ven, \u00e9s nat\u00edvan t\u00e1mogatja az \u00faj <code>wp-plugin\/&lt;em&gt;<\/code> \u00e9s <code>wp-theme\/&lt;\/em&gt;<\/code> csomagneveket: https:\/\/github.com\/roots\/wp-composer-changelog-action<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Teljes\u00edtm\u00e9ny: mi\u00e9rt gyorsabb a WP Composer?<\/h2>\n\n\n\n<p>A WP Composer a Composer v2 egyik modern megold\u00e1s\u00e1ra, a <strong><code>metadata-url<\/code><\/strong> protokollra t\u00e1maszkodik. Ennek a l\u00e9nyege, hogy a Composer csak azokhoz a csomagokhoz k\u00e9r le metadat\u00e1t, amik t\u00e9nylegesen kellenek a felold\u00e1shoz.<\/p>\n\n\n\n<p>Ezzel szemben a WPackagist sok\u00e1ig a r\u00e9gebbi <strong><code>provider-includes<\/code><\/strong> megk\u00f6zel\u00edt\u00e9st haszn\u00e1lta, ami dependency felold\u00e1s el\u0151tt nagy index f\u00e1jlokat t\u00f6ltet le a Composerrel &#8211; olyanokat is, amelyek rengeteg, a projekted szempontj\u00e1b\u00f3l irrelev\u00e1ns csomag metadat\u00e1j\u00e1t tartalmazz\u00e1k. A v\u00e9geredm\u00e9ny: hideg cache-szel lassabb resolve id\u0151k, \u00e9s felesleges adatforgalom.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Composer resolve id\u0151k (cold resolve, cache n\u00e9lk\u00fcl)<\/h3>\n\n\n\n<p>Az al\u00e1bbi sz\u00e1mokn\u00e1l a kisebb \u00e9rt\u00e9k a jobb:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>10 b\u0151v\u00edtm\u00e9ny: WP Composer 0.7s, WPackagist 12.3s (kb. 17\u00d7 gyorsul\u00e1s)<\/li>\n\n\n<li>20 b\u0151v\u00edtm\u00e9ny: WP Composer 1.1s, WPackagist 19.0s (kb. 17\u00d7 gyorsul\u00e1s)<\/li>\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Metadata \u00e9s cache-el\u00e9s k\u00fcl\u00f6nbs\u00e9gek<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Composer v2 <code>metadata-url<\/code>: WP Composer: igen, WPackagist: nem<\/li>\n\n\n<li>CDN cache header: WP Composer: <code>public, max-age=300<\/code>, WPackagist: <code>no-cache, private<\/code><\/li>\n\n\n<li>Csomagonk\u00e9nti f\u00e1jlok: WP Composer: immutable, content-addressed (tartalom alap\u00fa azonos\u00edt\u00e1s), \u00e9s gyakorlatilag korl\u00e1tlan ideig cache-elhet\u0151; WPackagist: nem content-addressed<\/li>\n\n<\/ul>\n\n\n\n<p>A m\u00e9r\u00e9sek egyetlen f\u00f6ldrajzi helyr\u0151l futottak Composer 2.7+ verzi\u00f3val, teh\u00e1t r\u00e9gi\u00f3 \u00e9s h\u00e1l\u00f3zati k\u00f6r\u00fclm\u00e9nyek alapj\u00e1n elt\u00e9r\u00e9s el\u0151fordulhat. A benchmark scriptek publikusak: https:\/\/github.com\/roots\/wp-composer\/tree\/main\/benchmarks<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ny\u00edlt forr\u00e1sk\u00f3d v\u00e9gig, nem csak \u201epap\u00edron\u201d<\/h2>\n\n\n\n<p>A WP Composer teljes k\u00f3db\u00e1zisa, dokument\u00e1ci\u00f3ja \u00e9s deployment konfigur\u00e1ci\u00f3ja ny\u00edlt forr\u00e1s\u00fa \u00e9s el\u00e9rhet\u0151 GitHubon: https:\/\/github.com\/roots\/wp-composer. Ez nem csak annyit jelent, hogy bele lehet n\u00e9zni, hanem azt is, hogy b\u00e1rki forkolhatja, \u00e9s ak\u00e1r saj\u00e1t p\u00e9ld\u00e1nyt is futtathat.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">K\u00f6z\u00f6ss\u00e9gi finansz\u00edroz\u00e1s: mit\u0151l marad f\u00fcggetlen?<\/h2>\n\n\n\n<p>A WP Composer \u00fczemeltet\u00e9se \u00e9s fejleszt\u00e9se k\u00f6z\u00f6ss\u00e9gi finansz\u00edroz\u00e1ssal megy, GitHub Sponsorson kereszt\u00fcl: https:\/\/github.com\/sponsors\/roots. A t\u00e1mogat\u00e1s k\u00f6zvetlen\u00fcl az infrastrukt\u00far\u00e1t, a fejleszt\u00e9st \u00e9s a karbantart\u00e1st finansz\u00edrozza &#8211; nem csak a WP Composer\u00e9t, hanem t\u00e1gabban a Roots \u00f6kosziszt\u00e9m\u00e1\u00e9t is.<\/p>\n\n\n\n<p>Ha a WordPress-es projektjeidben a Composer a mindennapi eszk\u00f6zt\u00e1rad r\u00e9sze (core, b\u0151v\u00edtm\u00e9nyek, sablonok verzi\u00f3z\u00e1sa, CI\/CD), akkor ez a fajta f\u00fcggetlen, transzparens infrastrukt\u00fara nagyon gyorsan \u201ekritikus szolg\u00e1ltat\u00e1ss\u00e1\u201d v\u00e1lik &#8211; \u00e9rdemes ennek megfelel\u0151en kezelni.<\/p>\n\n\n\n<div class=\"wp-block-group callout callout-info is-style-info is-layout-flow wp-block-group-is-layout-flow\" style=\"border-width:1px;border-radius:8px;padding-top:1rem;padding-right:1.5rem;padding-bottom:1rem;padding-left:1.5rem\">\n\n<h4 class=\"wp-block-heading callout-title\">Hasznos linkek egy helyen<\/h4>\n\n\n<p>WP Composer: https:\/\/wp-composer.com\nRepo URL (Composer): https:\/\/repo.wp-composer.com\n\u00d6sszehasonl\u00edt\u00e1s: https:\/\/wp-composer.com\/wp-composer-vs-wpackagist\nMigr\u00e1ci\u00f3s script: https:\/\/github.com\/roots\/wp-composer\/blob\/main\/scripts\/migrate-from-wpackagist.sh\nWP Composer Changelog Action: https:\/\/github.com\/roots\/wp-composer-changelog-action\nForr\u00e1sk\u00f3d: https:\/\/github.com\/roots\/wp-composer\nRoots\/wordpress: https:\/\/wp-composer.com\/roots-wordpress\nBedrock: https:\/\/roots.io\/bedrock\/<\/p>\n\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">\u00d6sszefoglal\u00e1s<\/h2>\n\n\n\n<p>A WP Composer egy modern, gyors \u00e9s \u00e1tl\u00e1that\u00f3 Composer repository WordPress b\u0151v\u00edtm\u00e9nyekhez \u00e9s sablonokhoz, tiszta <code>wp-plugin\/&lt;em&gt;<\/code> \u00e9s <code>wp-theme\/&lt;\/em&gt;<\/code> csomagnevekkel. A Composer v2 <code>metadata-url<\/code> t\u00e1mogat\u00e1s miatt a dependency felold\u00e1s \u00e9rezhet\u0151en gyorsabb lehet, \u00e9s a teljes projekt ny\u00edlt forr\u00e1s\u00fa, k\u00f6z\u00f6ss\u00e9gi finansz\u00edroz\u00e1s\u00fa m\u0171k\u00f6d\u00e9sre \u00e9p\u00fcl. WPackagistr\u00f3l \u00e1t\u00e1llni p\u00e1r parancs, vagy egy automata script k\u00e9rd\u00e9se &#8211; Bedrock\/Roots k\u00f6rnyezetben pedig kifejezetten k\u00e9zenfekv\u0151 v\u00e1laszt\u00e1s.<\/p>\n\n\n<div class=\"references-section\">\n                <h2>Hivatkoz\u00e1sok \/ Forr\u00e1sok<\/h2>\n                <ul class=\"references-list\"><li><a href=\"https:\/\/roots.io\/introducing-wp-composer-as-a-wpackagist-replacement\/\" target=\"_blank\" rel=\"noopener noreferrer\">Introducing WP Composer as a WPackagist Replacement<\/a><\/li><li><a href=\"https:\/\/wp-composer.com\" target=\"_blank\" rel=\"noopener noreferrer\">WP Composer<\/a><\/li><li><a href=\"https:\/\/wp-composer.com\/wp-composer-vs-wpackagist\" target=\"_blank\" rel=\"noopener noreferrer\">WP Composer vs WPackagist<\/a><\/li><li><a href=\"https:\/\/github.com\/roots\/wp-composer\" target=\"_blank\" rel=\"noopener noreferrer\">roots\/wp-composer<\/a><\/li><li><a href=\"https:\/\/github.com\/roots\/wp-composer\/blob\/main\/scripts\/migrate-from-wpackagist.sh\" target=\"_blank\" rel=\"noopener noreferrer\">migrate-from-wpackagist.sh<\/a><\/li><li><a href=\"https:\/\/github.com\/roots\/wp-composer-changelog-action\" target=\"_blank\" rel=\"noopener noreferrer\">roots\/wp-composer-changelog-action<\/a><\/li><li><a href=\"https:\/\/wp-composer.com\/roots-wordpress\" target=\"_blank\" rel=\"noopener noreferrer\">roots\/wordpress<\/a><\/li><li><a href=\"https:\/\/roots.io\/bedrock\/\" target=\"_blank\" rel=\"noopener noreferrer\">Bedrock<\/a><\/li><li><a href=\"https:\/\/github.com\/outlandishideas\/wpackagist\" target=\"_blank\" rel=\"noopener noreferrer\">outlandishideas\/wpackagist<\/a><\/li><\/ul>\n            <\/div>","protected":false},"excerpt":{"rendered":"<p>Ha eddig WPackagisttal h\u00faztad be Composerb\u0151l a WordPress b\u0151v\u00edtm\u00e9nyeket \u00e9s sablonokat, most \u00e9rdemes \u00faj alapokra helyezni a workflow-t. Meg\u00e9rkezett a WP Composer: k\u00f6z\u00f6ss\u00e9gi finansz\u00edroz\u00e1s\u00fa, teljesen ny\u00edlt forr\u00e1s\u00fa, \u00e9s l\u00e1tv\u00e1nyosan gyorsabb dependency felold\u00e1ssal.<\/p>\n","protected":false},"author":4,"featured_media":381,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[21],"tags":[101,8,110],"class_list":["post-382","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wordpress-okoszisztema","tag-bedrock","tag-composer","tag-devops"],"_links":{"self":[{"href":"https:\/\/helloblog.io\/hu\/wp-json\/wp\/v2\/posts\/382","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/helloblog.io\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/helloblog.io\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/helloblog.io\/hu\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/helloblog.io\/hu\/wp-json\/wp\/v2\/comments?post=382"}],"version-history":[{"count":0,"href":"https:\/\/helloblog.io\/hu\/wp-json\/wp\/v2\/posts\/382\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/helloblog.io\/hu\/wp-json\/wp\/v2\/media\/381"}],"wp:attachment":[{"href":"https:\/\/helloblog.io\/hu\/wp-json\/wp\/v2\/media?parent=382"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/helloblog.io\/hu\/wp-json\/wp\/v2\/categories?post=382"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/helloblog.io\/hu\/wp-json\/wp\/v2\/tags?post=382"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}