PageSourceSearch

https://packagist.org/

html packagist.org collected 2026-10-01 06:47:14 UTC 18,031 bytes, 289 lines download raw bytes

1<!DOCTYPE html>
2<html>
3    <head>
4        <meta charset="UTF-8" />
5
6        <title>Packagist.org</title>
7        <meta name="description" content="The PHP Package Repository" />
8        <meta name="author" content="Jordi Boggiano" />
9        <meta name="canonical" href="https://packagist.org/" />
10        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
11
12        <link rel="shortcut icon" href="/favicon.ico?v=1790710795" />
13
14        <link rel="stylesheet" href="/build/app.css?v=1790710795" />
15        
16                <link rel="alternate" type="application/rss+xml" title="Newly Submitted Packages - Packagist.org" href="https://packagist.org/feeds/packages.rss" />
17        <link rel="alternate" type="application/rss+xml" title="New Releases - Packagist.org" href="https://packagist.org/feeds/releases.rss" />
18        
19        <link rel="search" type="application/opensearchdescription+xml" href="/search.osd?v=1790710795" title="Packagist.org" />
20
21        
21<script nonce="eKqAIM7Kn5TsaV1zQ6oWzg==">
22            var onloadRecaptchaCallback = function() {
23                document.querySelectorAll('.recaptcha-protected').forEach((el) => {
24                    el.closest('form').querySelectorAll('button, input[type="submit"]').forEach((submit) => {
25                        grecaptcha.render(submit, {
26                            'sitekey' : '6LfKiPoUAAAAAGlKWkhEEx7X8muIVYy6oA0GNdX0',
27                            'callback' : function (token) {
28                                submit.form.submit();
29                            }
30                        });
31                    })
32                });
33            };
34        </script>
34
35        
36            </head>
37    <body>
38    <section class="wrap">
39        <header class="navbar-wrapper fixed-top">
40                        <nav class="container">
41                <div class="navbar navbar-expand-md" role="navigation">                        <div class="navbar-brand"><a href="/">Packagist</a> <em class="d-none d-lg-inline">The PHP Package Repository</em></div>                    <button type="button" class="navbar-toggler" data-bs-toggle="collapse" data-bs-target=".navbar-collapse">
42                        <span class="visually-hidden">Toggle navigation</span>
43                        <span class="icon-bar"></span>
44                        <span class="icon-bar"></span>
45                        <span class="icon-bar"></span>
46                    </button>
47
48                    <div class="collapse navbar-collapse">
49                        <ul class="nav navbar-nav">
50                            <li>
51                                <a href="/explore/">Browse</a>
52                            </li>
53                            <li>
54                                <a href="/about">About Packagist.org</a>
55                            </li>
56                            <li>
57                                <a href="/packages/submit">Submit</a>
58                            </li>                            <li>
59                                <a href="/register/">Create account</a>
60                            </li>
61                            <li class="nav-user">
62                                <section class="nav-user-signin">
63                                    <a href="/login/">Sign in</a>
64
65                                    <section class="signin-box">
66                                        <form action="/login/" method="POST" id="nav_login">
67                                            <div class="input-group">
68                                                <span class="input-group-text"><span class="icon-user"></span></span>
69                                                <input class="form-control" type="text" id="_username" name="_username" placeholder="Username / Email">
70                                            </div>
71                                            <div class="input-group">
72                                                <span class="input-group-text"><span class="icon-lock"></span></span>
73                                                <input class="form-control" type="password" id="_password" name="_password" placeholder="Password">
74                                            </div>
75
76                                            <div class="form-check">
77                                                <input class="form-check-input" type="checkbox" id="_remember_me" name="_remember_me" value="on" checked="checked" />
78                                                <label class="form-check-label" for="_remember_me">Remember me</label>
79                                            </div>
80                                            <div class="signin-box-buttons">
81                                                <a href="/login/github" class="float-end btn btn-primary btn-github"><span class="icon-github"></span>Use Github</a>
82                                                <button type="submit" class="btn btn-success" id="_submit_mini" name="_submit">Log in</button>
83                                            </div>
84                                        </form>
85
86                                        <div class="signin-box-register">
87                                            <a href="/register/">No account yet? Create one now!</a>
88                                        </div>
89                                    </section>
90                                </section>
91                            </li>                        </ul>
92                    </div>
93                </div>
94            </nav>
95        </header>
96
97        <section class="wrapper wrapper-search wrapper-search-hero">
98    <div class="container ">            <div class="hero-search-intro">
99                <div class="hero-brand-row">
100                    <img src="/img/logo-packagist.webp?v=1790710795" class="hero-brand-logo" alt="Packagist logo" width="400" height="455">
101                    <div class="hero-brand-text">                            <h1 class="hero-brand-title">Packagist</h1>                        <div class="hero-brand-subtitle">The PHP Package Repository</div>
102                    </div>
103                    <img src="/img/logo-composer.png?v=1790710795" class="hero-brand-logo" alt="Composer logo" width="290" height="356">
104                </div>
105                <p class="hero-search-claim">Packagist aggregates public packages that anyone can install with <a href="https://getcomposer.org/">Composer</a>.
106</p>
107            </div>
108        <form name="search_query" method="get" action="/search/" id="search-form" autocomplete="off">
109            <div class="sortable row">
110                <div class="col-12 js-search-field-wrapper col-lg-9">
111                    <input type="search" id="search_query_query" name="query" required="required" autocomplete="off" placeholder="Search packages..." tabindex="1" class=" form-control" value="" />
112                </div>
113            </div>
114        </form>            <div class="hero-search-footer">                    <ul class="hero-search-stats">
115                        <li><strong>469 642</strong> packages published</li>
116                        <li><strong>5 868 253</strong> versions</li>
117                        <li><strong>202 375 101 799</strong> installs</li>
118                    </ul>                <div class="hero-search-actions">
119                    <a href="https://getcomposer.org/download/" class="hero-btn hero-btn-primary">Install Composer</a>
120                    <a href="/about" class="hero-btn hero-btn-secondary">Discover Packagist</a>
121                </div>
122            </div>    </div>
123</section>
124
125
126                
127        
128        <section class="wrapper">
129            <section class="container content" role="main">
130                                    <div id="search-container" class="d-none">
131                        <div class="row">
132                            <div class="search-list col-lg-9"></div>
133
134                            <div class="search-facets col-lg-3">
135                                <div class="search-facets-active-filters-wrapper" style="display:none">
136                                    <div class="search-facets-active-filters-header">
137                                        <span>Active filters</span>
138                                        <div class="search-facets-clear-all"></div>
139                                    </div>
140                                    <div class="search-facets-active-filters"></div>
141                                </div>
142                                <div class="search-facets-type"></div>
143                                <div class="search-facets-tags"></div>
144                            </div>
145                        </div>
146
147                        <div class="row">
148                            <div class="col-lg-9">
149                                <div id="powered-by">
150                                    Search by <a href="https://www.algolia.com/"><img src="/img/sponsors/algolia-logo-light.svg?v=1790710795"></a>
151                                </div>
152                                <div id="pagination-container">
153                                    <div class="pagination-mount"></div>
154                                </div>
155                            </div>
156                        </div>
157                    </div>
158                
159                <section class="row">
160    <section class="col-12">
161        <h2 class="title">Latest News</h2>
162                    <h3><a href="https://blog.packagist.com/15-years-of-packagist-over-200-billion-package-installs/">15 years of Packagist: Over 200 billion package installs</a> <small class="text-muted">- Sep 29, 2026</small></h3>
163            <p>
164                On September 27th, 2011, Jordi submitted monolog/monolog to Packagist.org, it got package ID 1. Fifteen years later, Packagist.org lists more than 469,000 packages with over 5.8 million versions, and Composer has installed packages from it more than ...
165            </p>
166                    <h3><a href="https://blog.packagist.com/announcing-the-composer-packagist-sponsorship-program/">Announcing the Composer &amp; Packagist Sponsorship Program</a> <small class="text-muted">- Jul 30, 2026</small></h3>
167            <p>
168                Today we are launching a formal sponsorship program for Composer and Packagist.org, together with new public sponsor pages on packagist.org/sponsor and getcomposer.org/sponsor. We want to start by thanking the companies who are on board at launch: Pr...
169            </p>
170                    <h3><a href="https://blog.packagist.com/immutable-versions-on-packagist/">Immutable Versions on Packagist</a> <small class="text-muted">- Jul 07, 2026</small></h3>
171            <p>
172                This is the next post in our supply chain security series, following the supply chain security update and the Composer 2.10 release. Each post in this series covers a specific behavior worth understanding, and a change we are making on top of it. Tod...
173            </p>
174                    <h3><a href="https://blog.packagist.com/composer-2-10-release/">Composer 2.10 Release</a> <small class="text-muted">- May 28, 2026</small></h3>
175            <p>
176                We are excited to announce the release of Composer 2.10.0, introducing native malware filtering and consolidated future-proof customizable dependency policy configuration to control the handling of security advisories, abandoned packages, and now mal...
177            </p>
178                    <h3><a href="https://blog.packagist.com/an-update-on-composer-packagist-supply-chain-security/">An update on Composer &amp; Packagist supply chain security</a> <small class="text-muted">- May 27, 2026</small></h3>
179            <p>
180                The last months, and even more so the last weeks, saw an increasing amount of software supply chain attacks targeting open-source ecosystems. A handful of these have hit the PHP ecosystem too, via taken-over GitHub accounts and stolen access tokens t...
181            </p>
182            </section>
183</section>
184
185<section class="row">
186    <section class="col-xl-6">
187        <h2 class="title" id="getting-started">Installing PHP Dependencies</h2>
188        <div>
189            <h3>Define Your Dependencies</h3>
190            <p>Put a file named <em>composer.json</em> at the root of your project, containing your project dependencies:</p>
191            <pre><code>{
192    "require": {
193        "vendor/package": "1.3.2",
194        "vendor/package2": "1.*",
195        "vendor/package3": "^2.0.3"
196    }
197}</code></pre>
198            <p>For more information about package versions usage, see the <a href="https://getcomposer.org/doc/01-basic-usage.md#package-versions">Composer documentation</a>.</p>
199
200            <h3 id="install-composer">Install Composer and Dependencies</h3>
201            <p>Run this in your project root:</p>
202            <pre><code>curl -sS https://getcomposer.org/installer | php
203php composer.phar install</code></pre>
204            <p>Or <a href="https://getcomposer.org/composer.phar">download composer.phar</a> into your project root. See the Composer documentation for complete <a href="https://getcomposer.org/doc/00-intro.md#installation-linux-unix-macos">installation instructions</a> on various platforms.</p>
205
206            <h3 id="autoload-dependencies">Autoload Dependencies</h3>
207            <p>Add a <code>
207require 'vendor/autoload.php';</code> to your code to make all dependencies autoloadable and available to your code at runtime. <a href="/explore/">Browse</a> the packages we have to find more great libraries you can use in your project.</p>
208        </div>
209    </section>
210
211    <section class="col-xl-6">
212        <h2 class="title" id="how-to-submit-packages">Publishing Packages</h2>
213        <div>
214            <h3>Define Your Package</h3>
215            <p>Put a file named <em>composer.json</em> at the root of your package's repository, containing this information:</p>
216            <pre><code>{
217    "name": "your-vendor-name/package-name",
218    "description": "A short description of what your package does",
219    "require": {
220        "php": ">=8.2",
221        "another-vendor/package": "1.*"
222    }
223}</code></pre>
224            <p>This is the strictly minimal information you have to give.</p>
225
226            <h3>Publish It</h3>
227            <p>Run <code>composer validate</code> to check the file for syntax errors and commit it to your repository. Then <a href="/login/">log in</a> or <a href="/register/">register</a> and hit the <a href="/packages/submit">submit</a> button in the menu to enter your public repository URL. Your package will then be crawled periodically, so all you have to do is keep the composer.json file up to date.</p>
228            <p>See the <a href="/about#how-to-submit-packages">about page</a> for the full guide, including how to name your package and how to share private code.</p>
229        </div>
230    </section>
231</section>
232            </section>
233        </section>
234    </section>
235
236        <footer class="wrapper-footer">
237            <nav class="container">
238                <div class="row">
239                    <div class="col-8 col-md-9 col-lg-10">
240                        <div class="row">
241                            <ul class="col-6 col-md-3">
242                                <li><a href="/about">About Packagist.org</a></li>
243                                <li><a href="/feeds/" rel="nofollow">Atom/RSS Feeds</a></li>
244                            </ul>
245
246                            <ul class="col-6 col-md-3">
247                                <li><a href="/statistics" rel="nofollow">Statistics</a></li>
248                                <li><a href="/explore/">Browse Packages</a></li>
249                            </ul>
250
251                            <ul class="col-6 col-md-3">
252                                <li><a href="/apidoc">API</a></li>
253                                <li><a href="/mirrors">Mirrors</a></li>
254                            </ul>
255
256                            <ul class="col-6 col-md-3">
257                                <li><a href="https://status.packagist.org/">Status</a></li>
258                                <li><a href="https://p.datadoghq.com/sb/x98w56x71erzshui-4a54c45f82bacc991e83302548934b6a">Dashboard</a></li>
259                            </ul>
260                        </div>
261                    </div>
262
263                    <div class="col-4 col-md-3 col-lg-2">
264                        <ul class="social">
265                            <li><a href="http://github.com/composer/packagist" title="GitHub"><span class="icon-github"></span></a></li>
266                            <li><a href="/contact" title="Contact"><span class="icon-mail"></span></a></li>
267                        </ul>
268                    </div>
269                </div>
270
271                <div class="row sponsor">
272                    <p class="col-12 col-lg-6"><a class="short" href="https://packagist.com/"><img alt="Private Packagist" src="/img/sponsors/private-packagist.svg?v=1790710795" /></a> provides maintenance and hosting</p>
273                    <p class="col-12 col-lg-6"><a class="long" href="https://bunny.net/"><img alt="Bunny.net" src="/img/sponsors/bunny-net.svg?v=1790710795" /></a> provides bandwidth and CDN</p>
274                    <p class="col-12 col-lg-6"><a class="short" href="https://www.aikido.dev/"><img alt="Aikido" src="/img/sponsors/aikido.svg?v=1790710795" /></a> provides malware detection</p>
275                    <p class="col-12 text-center"><a href="/sponsor/">Sponsor Packagist &amp; Composer</a></p>
276                </div>
277            </nav>
278        </footer>
279
280        <div class="notifications-container toast-container position-fixed top-0 start-50 translate-middle-x p-3"></div>
281
282        
282<script nonce="eKqAIM7Kn5TsaV1zQ6oWzg==">
283                        var algoliaConfig = {"app_id":"M58222SH95","search_key":"0cdb98d788b15a422a65e7f2fcecff5b","index_name":"packagist"};
284                    </script>
284
285        
286        
286<script nonce="eKqAIM7Kn5TsaV1zQ6oWzg==" src="/build/app.js?v=1790710795"></script>
286
287
288            </body>
289</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.