<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Composer &#8211; ケケンタの独学ITブログ</title>
	<atom:link href="https://kekenta-it-blog.com/tag/composer/feed/" rel="self" type="application/rss+xml" />
	<link>https://kekenta-it-blog.com</link>
	<description>プログラミングやWeb制作の情報を発信</description>
	<lastBuildDate>Tue, 18 Mar 2025 01:55:24 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://kekenta-it-blog.com/wp-content/uploads/2023/07/cropped-KEKENTA-BLOG-32x32.png</url>
	<title>Composer &#8211; ケケンタの独学ITブログ</title>
	<link>https://kekenta-it-blog.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【PHP】composer.lockファイルとは？composer.jsonとの違いを解説</title>
		<link>https://kekenta-it-blog.com/composer-lock-json-diff/</link>
					<comments>https://kekenta-it-blog.com/composer-lock-json-diff/#respond</comments>
		
		<dc:creator><![CDATA[ケケンタ]]></dc:creator>
		<pubDate>Wed, 21 Aug 2024 02:40:09 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Webアプリ]]></category>
		<category><![CDATA[Composer]]></category>
		<category><![CDATA[composer.json]]></category>
		<category><![CDATA[composer.lock]]></category>
		<guid isPermaLink="false">https://kekenta-it-blog.com/?p=10411</guid>

					<description><![CDATA[<p><img src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/eye-catch__composer-lock-json-diff__10411-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>今回はこのような疑問にお答えするため、 Composerを使用するときに登場するcomposer.lockファイルとcomposer.jsonファイルの違い を解説します。 Composerとは？ Composerとは、 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/eye-catch__composer-lock-json-diff__10411-1024x576.jpg" class="webfeedsFeaturedVisual" /></p><div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/困った顔-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/困った顔-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>Composerを使うときにcomposer.lockファイルって出てくるけど、これってどんなファイルなの？<br>composer.jsonとどう違うの？</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>今回はこのような疑問にお答えするため、</p>



<p class="has-text-align-center is-style-big_kakko_box"><strong>Composerを使用するときに登場する<br>composer.lockファイルとcomposer.jsonファイルの違い</strong></p>



<p>を解説します。</p>



<div class="swell-block-capbox cap_box is-style-shadow"><div class="cap_box_ttl"><span><span data-icon="LsLightbulb" data-id="0" style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" aria-hidden="true" class="swl-inline-icon"> </span><strong>この記事でわかること</strong></span></div><div class="cap_box_content">
<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li><code class="file_name">composer.lock</code>ファイルと<code class="file_name">composer.json</code>ファイルの違い</li>



<li><code class="file_name">composer.lock</code>ファイルと<code class="file_name">composer.json</code>ファイルの役割</li>



<li>後からパッケージを追加したり更新（修正）したりする方法</li>
</ul>
</div></div>


<div class="swell-block-postLink">			<a href="https://kekenta-it-blog.com/composer-install/" class="c-blogLink -internal" data-style="text">
				<!-- <i class="c-blogLink__icon icon-link" role="presentation"></i> -->
				<span class="c-blogLink__icon">
					<svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-link __svg" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M21.2 30.2c-.5 0-1-.2-1.4-.6l-.7-.7c-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l7.1-7.1c2.3-2.3 5.3-3.5 8.5-3.5s6.2 1.2 8.5 3.5c4.7 4.7 4.7 12.3 0 17l-3.5 3.5c-.8.8-2 .8-2.8 0-.8-.8-.8-2 0-2.8l3.5-3.5c3.1-3.1 3.1-8.2 0-11.3-1.5-1.5-3.5-2.3-5.7-2.3-2.1 0-4.2.8-5.7 2.3l-7.1 7.1c-1.5 1.5-2.3 3.5-2.3 5.7s.8 4.2 2.3 5.7l.7.7c.8.8.8 2 0 2.8-.4.3-.9.5-1.4.5z" /><path d="M13.4 46.6c-3.1 0-6.1-1.2-8.5-3.5-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l3.5-3.5c.8-.8 2-.8 2.8 0 .8.8.8 2 0 2.8l-3.5 3.5c-1.5 1.5-2.3 3.5-2.3 5.7 0 2.1.8 4.2 2.3 5.7 3.1 3.1 8.2 3.1 11.3 0l7.1-7.1c1.5-1.5 2.3-3.5 2.3-5.7 0-2.1-.8-4.2-2.3-5.7l-.7-.7c-.8-.8-.8-2 0-2.8.8-.8 2-.8 2.8 0l.7.7c2.3 2.3 3.5 5.3 3.5 8.5s-1.2 6.2-3.5 8.5l-7.1 7.1c-2.3 2.3-5.3 3.5-8.4 3.5z" /></svg>				</span>
				<span class="c-blogLink__text">【Windows】Composerのインストール方法｜エラー時の対処も解説</span>
			</a>
		</div>

<div class="swell-block-postLink">			<a href="https://kekenta-it-blog.com/alone-php-study/" class="c-blogLink -internal" data-style="text">
				<!-- <i class="c-blogLink__icon icon-link" role="presentation"></i> -->
				<span class="c-blogLink__icon">
					<svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-link __svg" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M21.2 30.2c-.5 0-1-.2-1.4-.6l-.7-.7c-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l7.1-7.1c2.3-2.3 5.3-3.5 8.5-3.5s6.2 1.2 8.5 3.5c4.7 4.7 4.7 12.3 0 17l-3.5 3.5c-.8.8-2 .8-2.8 0-.8-.8-.8-2 0-2.8l3.5-3.5c3.1-3.1 3.1-8.2 0-11.3-1.5-1.5-3.5-2.3-5.7-2.3-2.1 0-4.2.8-5.7 2.3l-7.1 7.1c-1.5 1.5-2.3 3.5-2.3 5.7s.8 4.2 2.3 5.7l.7.7c.8.8.8 2 0 2.8-.4.3-.9.5-1.4.5z" /><path d="M13.4 46.6c-3.1 0-6.1-1.2-8.5-3.5-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l3.5-3.5c.8-.8 2-.8 2.8 0 .8.8.8 2 0 2.8l-3.5 3.5c-1.5 1.5-2.3 3.5-2.3 5.7 0 2.1.8 4.2 2.3 5.7 3.1 3.1 8.2 3.1 11.3 0l7.1-7.1c1.5-1.5 2.3-3.5 2.3-5.7 0-2.1-.8-4.2-2.3-5.7l-.7-.7c-.8-.8-.8-2 0-2.8.8-.8 2-.8 2.8 0l.7.7c2.3 2.3 3.5 5.3 3.5 8.5s-1.2 6.2-3.5 8.5l-7.1 7.1c-2.3 2.3-5.3 3.5-8.4 3.5z" /></svg>				</span>
				<span class="c-blogLink__text">PHPはこうして習得した！約１年間の勉強内容【プログラミング独学】</span>
			</a>
		</div>

<div class="swell-block-postLink">			<a href="https://kekenta-it-blog.com/php-deploy-xserver-for-zip/" class="c-blogLink -internal" data-style="text">
				<!-- <i class="c-blogLink__icon icon-link" role="presentation"></i> -->
				<span class="c-blogLink__icon">
					<svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-link __svg" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M21.2 30.2c-.5 0-1-.2-1.4-.6l-.7-.7c-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l7.1-7.1c2.3-2.3 5.3-3.5 8.5-3.5s6.2 1.2 8.5 3.5c4.7 4.7 4.7 12.3 0 17l-3.5 3.5c-.8.8-2 .8-2.8 0-.8-.8-.8-2 0-2.8l3.5-3.5c3.1-3.1 3.1-8.2 0-11.3-1.5-1.5-3.5-2.3-5.7-2.3-2.1 0-4.2.8-5.7 2.3l-7.1 7.1c-1.5 1.5-2.3 3.5-2.3 5.7s.8 4.2 2.3 5.7l.7.7c.8.8.8 2 0 2.8-.4.3-.9.5-1.4.5z" /><path d="M13.4 46.6c-3.1 0-6.1-1.2-8.5-3.5-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l3.5-3.5c.8-.8 2-.8 2.8 0 .8.8.8 2 0 2.8l-3.5 3.5c-1.5 1.5-2.3 3.5-2.3 5.7 0 2.1.8 4.2 2.3 5.7 3.1 3.1 8.2 3.1 11.3 0l7.1-7.1c1.5-1.5 2.3-3.5 2.3-5.7 0-2.1-.8-4.2-2.3-5.7l-.7-.7c-.8-.8-.8-2 0-2.8.8-.8 2-.8 2.8 0l.7.7c2.3 2.3 3.5 5.3 3.5 8.5s-1.2 6.2-3.5 8.5l-7.1 7.1c-2.3 2.3-5.3 3.5-8.4 3.5z" /></svg>				</span>
				<span class="c-blogLink__text">【PHP】エックスサーバーへデプロイする方法【初心者でも簡単！】</span>
			</a>
		</div>

<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2025/03/eye-catch__school-php-and-wp__14099-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/school-php-and-wp/">PHPやWordPressを学ぶのにおすすめのプログラミングスクール【７選】</a>
						<span class="p-blogCard__excerpt">僕はこれまで独学でPHPを学習してきました。結論から言えば、それでもPHPを習得することはできました。 しかし、それに費やした累計学習期間は1年ほど。モチベーション&#8230;</span>					</div>
				</div>
			</div>
		</div>


<h2 class="wp-block-heading">Composerとは？</h2>



<p class="is-style-bg_stripe">Composerとは、<strong><span class="swl-marker mark_yellow">PHPのパッケージライブラリを管理するためのツール</span></strong>です。</p>



<p><strong>パッケージライブラリ</strong>は、簡単に言うと<strong>便利な機能（関数やクラスなど）がすでに実装されている機能のまとまり</strong>のことです。</p>



<p>例えば、<strong>Goutte</strong>というパッケージライブラリを使用すると、スクレイピング（Web上から情報を自動収集する技術）を比較的簡単に実装することが可能です。</p>



<h2 class="wp-block-heading">Composerの基本的な使用方法</h2>



<p>この記事での詳しい解説は割愛させていただきますが、<strong>Composerを使用するときの大まかな流れ</strong>は以下の通りです。</p>



<div class="swell-block-capbox cap_box is-style-shadow"><div class="cap_box_ttl"><span><strong>Composerを使用するときの流れ</strong></span></div><div class="cap_box_content">
<ul class="wp-block-list is-style-num_circle -list-under-dashed">
<li><code class="file_name">composer.json</code>ファイルを新規作成する</li>



<li><code class="file_name">composer.json</code>ファイルにインストールしたい<strong>パッケージ名：バージョン</strong>を記載する</li>



<li>ターミナルで<code>composer install</code>コマンドを実行する</li>



<li>パッケージがインストールされる＆<code class="file_name">composer.lock</code>ファイルが生成される</li>
</ul>
</div></div>



<p>上記の流れにあるとおり</p>



<p class="is-style-bg_stripe">Composerを使用する中で、<code class="file_name">composer.lock</code>ファイルと<code class="file_name">composer.json</code>ファイルの２つが登場します。</p>



<p>この記事で解説するのが、</p>



<p>「この２つのファイルはそれぞれどのような役割を持つのか？」</p>



<p>「何が違うのか？」</p>



<p>という点です。</p>



<p class="is-style-icon_pen">Composerの使用方法を知りたい方は<a href="https://kekenta-it-blog.com/composer-how-to/">以下の記事</a>をご覧ください。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/eye-catch__composer-how-to__9871-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/composer-how-to/">【初心者向け】Composerの使い方を丁寧に解説！【PHP】</a>
						<span class="p-blogCard__excerpt">Composerってよく見かけるけど、イマイチ使い方がわからないな…… 今回はこうしたお悩みをお持ちの方へ向けて PHPのWebアプリ開発にComposerを導入してパッケージライブ&#8230;</span>					</div>
				</div>
			</div>
		</div>

<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4374558503914683"
     crossorigin="anonymous"></script>
<!-- ディスプレイ【横長】 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-4374558503914683"
     data-ad-slot="9744298852"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">composer.jsonとcomposer.lockの違い</h2>



<p>それでは、この記事の本題である</p>



<p class="has-text-align-center is-style-bg_stripe"><strong>composer.jsonとcomposer.lockの違い</strong></p>



<p>について解説をしていきます。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>この２つのファイルの違いを理解するためには、<strong>それぞれのファイルの役割を知ること</strong>が大切です！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<h3 class="wp-block-heading">composer.jsonの役割</h3>



<p class="is-style-bg_stripe">プロジェクト立ち上げ時に、<strong>インストールしたいパッケージをComposerへ伝えること</strong>がcomposer.jsonの役割です。</p>



<p>composer.jsonにインストールしたいパッケージ情報を記述しておき、<code>composer install</code>コマンドを実行することで、記述したパッケージや依存関係にあるパッケージが自動的にインストールされます。</p>



<h3 class="wp-block-heading">composer.lockの役割</h3>



<p class="is-style-bg_stripe"><strong>チーム開発のとき、チームメンバーが効率的に同じパッケージをインストールできるようにすること</strong>が<code class="file_name">composer.lock</code>ファイルの役割です。</p>



<p>前述したとおり、初めて<code>composer install</code>コマンドを実行すると、Composerは<code class="file_name">composer.json</code>ファイルを参照し、そこに記述されているパッケージとその依存パッケージをインストールします。</p>



<p>それと同時に、<strong>「どんなパッケージをインストールしたのか」という情報が<code class="file_name">composer.lock</code>ファイルに記録</strong>されます。</p>



<p>そして、ここが<strong>重要なポイント</strong>ですが、</p>



<p class="is-style-big_icon_point"><code class="file_name">composer.lock</code>ファイルがある状態で<code>composer install</code>コマンドを実行すると、<strong><span class="swl-marker mark_yellow">Composerは.jsonではなく、.lockを参照してパッケージをインストール</span></strong>します。</p>


<div class="wp-block-image is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="470" height="436" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-lock-json-diff.jpg" alt="composer installコマンド実行時の動き" class="wp-image-10455" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-lock-json-diff.jpg 470w, https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-lock-json-diff-300x278.jpg 300w" sizes="(max-width: 470px) 100vw, 470px" /><figcaption class="wp-element-caption">composer installコマンド実行時の動き</figcaption></figure>
</div>

<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>つまり、チームメンバー間で同じ<code class="file_name">composer.lock</code>ファイルを共有して<code>composer install</code>コマンドを実行すれば、全員が簡単に同じパッケージをインストールできるということです。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p class="is-style-icon_info">裏を返すと、<code class="file_name">composer.lock</code>ファイルがあるときは、<code>composer install</code>コマンドを実行しても<code class="file_name">composer.json</code>ファイルに記述されている内容は参照されないということでもあります。<br>※この辺りについては、次章で詳しくお伝えします。</p>



<p>以上が、<strong>composer.jsonとcomposer.lockファイルの違い</strong>です。</p>



<h2 class="wp-block-heading">パッケージを更新（修正）・追加する方法</h2>



<p>前述のとおり、</p>



<p class="is-style-bg_stripe"><code class="file_name">composer.lock</code>ファイルがあるときは、<code>composer install</code>コマンドを実行しても<code class="file_name">composer.json</code>ファイルに記述されている内容は参照されません。</p>



<p>つまり、あとから</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/真顔-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/真顔-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>パッケージの情報を変えたいな……<br>パッケージを追加したいな……</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>となったときに<strong><code class="file_name">composer.json</code>ファイルを編集して<code>composer install</code>コマンドを実行しても、パッケージに変更が加わらない</strong>ということです。</p>



<p class="is-style-big_icon_check">パッケージを「更新（修正）」または「追加」したいときは、以下のようにまた<strong>違うコマンドを使用</strong>します。</p>



<div class="swell-block-capbox cap_box is-style-shadow"><div class="cap_box_ttl"><span><strong>【方法】パッケージ情報を「更新（修正）」する</strong></span></div><div class="cap_box_content">
<ul class="wp-block-list is-style-num_circle -list-under-dashed u-mb-ctrl u-mb-25">
<li>composer.jsonを編集する</li>



<li><code>composer update</code>または<code>composer update パッケージ名</code>コマンドを実行する</li>
</ul>



<p class="u-mb-ctrl u-mb-15 is-style-balloon_box2">「composer update」と「composer update パッケージ名」の違い</p>



<div class="wp-block-group"><div class="wp-block-group__inner-container">
<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li><code>composer update</code>…… composer.jsonに記述されている<strong>全パッケージに対して</strong>更新が実行される</li>



<li><code>composer update パッケージ名</code>…… composer.jsonに記述されている、<strong>指定したパッケージのみ</strong>更新が実行される</li>
</ul>
</div></div>
</div></div>



<div class="swell-block-capbox cap_box is-style-shadow"><div class="cap_box_ttl"><span><strong>【方法】パッケージを「追加」する</strong></span></div><div class="cap_box_content">
<ul class="wp-block-list is-style-num_circle u-mb-ctrl u-mb-25 -list-under-dashed">
<li><code>composer require パッケージ名</code>コマンドを実行する</li>
</ul>



<p class="is-style-balloon_box2">パッケージのバージョンを指定したいとき</p>



<p class="is-style-bg_stripe"><code>composer require パッケージ名:バージョン番号</code>コマンドを実行する<br>（例）composer require hoge/huge:3.1.0</p>
</div></div>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>Composerであとからパッケージを更新（修正）したり追加したりするときは、<strong><code>update</code>や<code>require</code>コマンドを使う</strong>ということを覚えておきましょう！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4374558503914683"
     crossorigin="anonymous"></script>
<!-- ディスプレイ【横長】 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-4374558503914683"
     data-ad-slot="9744298852"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">composer.lockファイルを上手く活用してチーム開発を効率化しよう</h2>



<p>以上が<strong><span class="swl-marker mark_yellow">composer.lockファイルとcomposer.jsonファイルの違い</span></strong>でした。</p>



<p>このように、２つのファイルの役割には明確な違いがあります。</p>



<p>特に<code class="file_name">composer.lock</code>ファイルは、チーム開発をする上で上手に活用できるとパッケージを安全かつ効率的にインストールできます。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>いまはまだ個人でしか開発していないという方も、<code class="file_name">composer.lock</code>ファイルと<code class="file_name">composer.json</code>ファイルの違いをしっかり整理しておくことでComposerへの理解も深まるかと思います。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>この記事が少しでもお役に立ったなら何よりです！</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/eye-catch__composer-install__9757-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/composer-install/">【Windows】Composerのインストール方法｜エラー時の対処も解説</a>
						<span class="p-blogCard__excerpt">こんにちは！　ケケンタです。 この記事ではPHPでWebアプリ開発を行うなら必須の Composerのインストール方法（Windows版） を解説していきます。 PHPを始めたばかりの&#8230;</span>					</div>
				</div>
			</div>
		</div>

<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/eye-catch__composer-how-to__9871-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/composer-how-to/">【初心者向け】Composerの使い方を丁寧に解説！【PHP】</a>
						<span class="p-blogCard__excerpt">Composerってよく見かけるけど、イマイチ使い方がわからないな…… 今回はこうしたお悩みをお持ちの方へ向けて PHPのWebアプリ開発にComposerを導入してパッケージライブ&#8230;</span>					</div>
				</div>
			</div>
		</div>]]></content:encoded>
					
					<wfw:commentRss>https://kekenta-it-blog.com/composer-lock-json-diff/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【PHP】スクレイピングする方法｜データベース保存のソースコードあり</title>
		<link>https://kekenta-it-blog.com/php-scraping-use-package/</link>
					<comments>https://kekenta-it-blog.com/php-scraping-use-package/#respond</comments>
		
		<dc:creator><![CDATA[ケケンタ]]></dc:creator>
		<pubDate>Tue, 20 Aug 2024 08:43:21 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Webアプリ]]></category>
		<category><![CDATA[Composer]]></category>
		<category><![CDATA[Guzzle]]></category>
		<category><![CDATA[PHP DOM Wrapper]]></category>
		<category><![CDATA[スクレイピング]]></category>
		<guid isPermaLink="false">https://kekenta-it-blog.com/?p=9759</guid>

					<description><![CDATA[<p><img src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/eye-catch__php-scraping-use-package__9759-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>このようなお悩みをお持ちの方に向けて、この記事では PHPでスクレイピングする方法 を解説します。 PHPではパッケージを使用しなくても比較的簡単にスクレイピングする方法が用意されています。 しかし、その方法では最低限の [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/eye-catch__php-scraping-use-package__9759-1024x576.jpg" class="webfeedsFeaturedVisual" /></p><div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/困った顔-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/困った顔-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>PHPでスクレイピングしてみたいんだけど、やり方がわからない……</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>このようなお悩みをお持ちの方に向けて、この記事では</p>



<p class="has-text-align-center is-style-big_kakko_box"><strong>PHPでスクレイピングする方法</strong></p>



<p>を解説します。</p>



<div class="swell-block-capbox cap_box is-style-shadow"><div class="cap_box_ttl"><span><span data-icon="LsLightbulb" data-id="0" style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" aria-hidden="true" class="swl-inline-icon"> </span><strong>この記事でわかること</strong></span></div><div class="cap_box_content">
<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li>PHPのライブラリパッケージを使用してスクレイピングする方法</li>



<li>スクレイピングの実践的なソースコード</li>
</ul>
</div></div>



<p>PHPではパッケージを使用しなくても比較的簡単にスクレイピングする方法が用意されています。</p>



<p>しかし、その方法では最低限のことしか実装できないため、当記事では応用のしやすも重視する意味で、<strong><span class="swl-marker mark_yellow">パッケージでスクレイピングする方法</span></strong>をご紹介します。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>スクレイピングが初めての方やPHPを触り始めたばかりの方にとっては難しく感じる部分もあるかと思いますが、まずは<strong>当記事のソースコードを丸々コピペして動作を確認する</strong>だけでも勉強になるかと思います。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p class="is-style-icon_pen">また、記事の後半では、サイト全体に対するスクレイピングやデータベースへの保存など、<strong>より実践的なソースコードもご紹介</strong>しています。<br>基本的なソースコードだけではなく、「スクレイピングを実践で使用するイメージ」を掴んでいただければと思っています。</p>



<p class="is-style-balloon_box2">Webアプリ開発に興味がある方におすすめの記事</p>


<div class="swell-block-postLink">			<a href="https://kekenta-it-blog.com/board-app-php/" class="c-blogLink -internal" data-style="text">
				<!-- <i class="c-blogLink__icon icon-link" role="presentation"></i> -->
				<span class="c-blogLink__icon">
					<svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-link __svg" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M21.2 30.2c-.5 0-1-.2-1.4-.6l-.7-.7c-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l7.1-7.1c2.3-2.3 5.3-3.5 8.5-3.5s6.2 1.2 8.5 3.5c4.7 4.7 4.7 12.3 0 17l-3.5 3.5c-.8.8-2 .8-2.8 0-.8-.8-.8-2 0-2.8l3.5-3.5c3.1-3.1 3.1-8.2 0-11.3-1.5-1.5-3.5-2.3-5.7-2.3-2.1 0-4.2.8-5.7 2.3l-7.1 7.1c-1.5 1.5-2.3 3.5-2.3 5.7s.8 4.2 2.3 5.7l.7.7c.8.8.8 2 0 2.8-.4.3-.9.5-1.4.5z" /><path d="M13.4 46.6c-3.1 0-6.1-1.2-8.5-3.5-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l3.5-3.5c.8-.8 2-.8 2.8 0 .8.8.8 2 0 2.8l-3.5 3.5c-1.5 1.5-2.3 3.5-2.3 5.7 0 2.1.8 4.2 2.3 5.7 3.1 3.1 8.2 3.1 11.3 0l7.1-7.1c1.5-1.5 2.3-3.5 2.3-5.7 0-2.1-.8-4.2-2.3-5.7l-.7-.7c-.8-.8-.8-2 0-2.8.8-.8 2-.8 2.8 0l.7.7c2.3 2.3 3.5 5.3 3.5 8.5s-1.2 6.2-3.5 8.5l-7.1 7.1c-2.3 2.3-5.3 3.5-8.4 3.5z" /></svg>				</span>
				<span class="c-blogLink__text">掲示板アプリの作り方｜プログラミング初心者向け【PHP】</span>
			</a>
		</div>

<div class="swell-block-postLink">			<a href="https://kekenta-it-blog.com/php-login-app/" class="c-blogLink -internal" data-style="text">
				<!-- <i class="c-blogLink__icon icon-link" role="presentation"></i> -->
				<span class="c-blogLink__icon">
					<svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-link __svg" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M21.2 30.2c-.5 0-1-.2-1.4-.6l-.7-.7c-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l7.1-7.1c2.3-2.3 5.3-3.5 8.5-3.5s6.2 1.2 8.5 3.5c4.7 4.7 4.7 12.3 0 17l-3.5 3.5c-.8.8-2 .8-2.8 0-.8-.8-.8-2 0-2.8l3.5-3.5c3.1-3.1 3.1-8.2 0-11.3-1.5-1.5-3.5-2.3-5.7-2.3-2.1 0-4.2.8-5.7 2.3l-7.1 7.1c-1.5 1.5-2.3 3.5-2.3 5.7s.8 4.2 2.3 5.7l.7.7c.8.8.8 2 0 2.8-.4.3-.9.5-1.4.5z" /><path d="M13.4 46.6c-3.1 0-6.1-1.2-8.5-3.5-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l3.5-3.5c.8-.8 2-.8 2.8 0 .8.8.8 2 0 2.8l-3.5 3.5c-1.5 1.5-2.3 3.5-2.3 5.7 0 2.1.8 4.2 2.3 5.7 3.1 3.1 8.2 3.1 11.3 0l7.1-7.1c1.5-1.5 2.3-3.5 2.3-5.7 0-2.1-.8-4.2-2.3-5.7l-.7-.7c-.8-.8-.8-2 0-2.8.8-.8 2-.8 2.8 0l.7.7c2.3 2.3 3.5 5.3 3.5 8.5s-1.2 6.2-3.5 8.5l-7.1 7.1c-2.3 2.3-5.3 3.5-8.4 3.5z" /></svg>				</span>
				<span class="c-blogLink__text">【PHP】ログイン機能の仕組み・ソースコード解説｜ハッシュ値とは？</span>
			</a>
		</div>

<div class="swell-block-postLink">			<a href="https://kekenta-it-blog.com/alone-php-study/" class="c-blogLink -internal" data-style="text">
				<!-- <i class="c-blogLink__icon icon-link" role="presentation"></i> -->
				<span class="c-blogLink__icon">
					<svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-link __svg" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M21.2 30.2c-.5 0-1-.2-1.4-.6l-.7-.7c-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l7.1-7.1c2.3-2.3 5.3-3.5 8.5-3.5s6.2 1.2 8.5 3.5c4.7 4.7 4.7 12.3 0 17l-3.5 3.5c-.8.8-2 .8-2.8 0-.8-.8-.8-2 0-2.8l3.5-3.5c3.1-3.1 3.1-8.2 0-11.3-1.5-1.5-3.5-2.3-5.7-2.3-2.1 0-4.2.8-5.7 2.3l-7.1 7.1c-1.5 1.5-2.3 3.5-2.3 5.7s.8 4.2 2.3 5.7l.7.7c.8.8.8 2 0 2.8-.4.3-.9.5-1.4.5z" /><path d="M13.4 46.6c-3.1 0-6.1-1.2-8.5-3.5-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l3.5-3.5c.8-.8 2-.8 2.8 0 .8.8.8 2 0 2.8l-3.5 3.5c-1.5 1.5-2.3 3.5-2.3 5.7 0 2.1.8 4.2 2.3 5.7 3.1 3.1 8.2 3.1 11.3 0l7.1-7.1c1.5-1.5 2.3-3.5 2.3-5.7 0-2.1-.8-4.2-2.3-5.7l-.7-.7c-.8-.8-.8-2 0-2.8.8-.8 2-.8 2.8 0l.7.7c2.3 2.3 3.5 5.3 3.5 8.5s-1.2 6.2-3.5 8.5l-7.1 7.1c-2.3 2.3-5.3 3.5-8.4 3.5z" /></svg>				</span>
				<span class="c-blogLink__text">PHPはこうして習得した！約１年間の勉強内容【プログラミング独学】</span>
			</a>
		</div>

<div class="swell-block-postLink">			<a href="https://kekenta-it-blog.com/php-deploy-xserver-for-zip/" class="c-blogLink -internal" data-style="text">
				<!-- <i class="c-blogLink__icon icon-link" role="presentation"></i> -->
				<span class="c-blogLink__icon">
					<svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-link __svg" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M21.2 30.2c-.5 0-1-.2-1.4-.6l-.7-.7c-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l7.1-7.1c2.3-2.3 5.3-3.5 8.5-3.5s6.2 1.2 8.5 3.5c4.7 4.7 4.7 12.3 0 17l-3.5 3.5c-.8.8-2 .8-2.8 0-.8-.8-.8-2 0-2.8l3.5-3.5c3.1-3.1 3.1-8.2 0-11.3-1.5-1.5-3.5-2.3-5.7-2.3-2.1 0-4.2.8-5.7 2.3l-7.1 7.1c-1.5 1.5-2.3 3.5-2.3 5.7s.8 4.2 2.3 5.7l.7.7c.8.8.8 2 0 2.8-.4.3-.9.5-1.4.5z" /><path d="M13.4 46.6c-3.1 0-6.1-1.2-8.5-3.5-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l3.5-3.5c.8-.8 2-.8 2.8 0 .8.8.8 2 0 2.8l-3.5 3.5c-1.5 1.5-2.3 3.5-2.3 5.7 0 2.1.8 4.2 2.3 5.7 3.1 3.1 8.2 3.1 11.3 0l7.1-7.1c1.5-1.5 2.3-3.5 2.3-5.7 0-2.1-.8-4.2-2.3-5.7l-.7-.7c-.8-.8-.8-2 0-2.8.8-.8 2-.8 2.8 0l.7.7c2.3 2.3 3.5 5.3 3.5 8.5s-1.2 6.2-3.5 8.5l-7.1 7.1c-2.3 2.3-5.3 3.5-8.4 3.5z" /></svg>				</span>
				<span class="c-blogLink__text">【PHP】エックスサーバーへデプロイする方法【初心者でも簡単！】</span>
			</a>
		</div>

<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2025/03/eye-catch__school-php-and-wp__14099-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/school-php-and-wp/">PHPやWordPressを学ぶのにおすすめのプログラミングスクール【７選】</a>
						<span class="p-blogCard__excerpt">僕はこれまで独学でPHPを学習してきました。結論から言えば、それでもPHPを習得することはできました。 しかし、それに費やした累計学習期間は1年ほど。モチベーション&#8230;</span>					</div>
				</div>
			</div>
		</div>


<h2 class="wp-block-heading">スクレイピングの前提知識</h2>



<h3 class="wp-block-heading">【その①】スクレイピングの仕組み</h3>



<p class="is-style-bg_stripe"><strong>スクレイピングの大まかな流れ</strong>は以下の通りです。</p>



<div class="swell-block-capbox cap_box is-style-shadow"><div class="cap_box_ttl"><span><span data-icon="LsLightbulb" data-id="0" style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" aria-hidden="true" class="swl-inline-icon"> </span><strong> スクレイピングの流れ</strong></span></div><div class="cap_box_content">
<ul class="wp-block-list is-style-num_circle -list-under-dashed">
<li>欲しい情報が掲載されているページの<strong>ドキュメントをダウンロード</strong>する</li>



<li>ダウンロードしたドキュメントを<strong>パース（構文解析）する</strong>＝どの情報がどの場所にあるのかを特定する</li>



<li>パースしたドキュメントから<strong>欲しい情報を抜き出す</strong></li>
</ul>
</div></div>



<p class="is-style-big_icon_check">今回はこの内、①と②を<strong>パッケージで対応</strong>します。<br>③についてはPHPの基本機能で実装可能です。</p>



<h3 class="wp-block-heading">【その②】使用するパッケージ</h3>



<p class="is-style-bg_stripe">今回のスクレイピングでは、以下の<strong>２つのパッケージ</strong>を使用します。</p>



<div class="swell-block-capbox cap_box is-style-onborder_ttl2"><div class="cap_box_ttl"><span><span data-icon="LsLightbulb" data-id="0" style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" aria-hidden="true" class="swl-inline-icon"> </span><strong>使用するライブラリパッケージ</strong></span></div><div class="cap_box_content">
<ul class="wp-block-list -list-under-dashed is-style-num_circle">
<li>Guzzle</li>



<li>PHP DOM Wrapper</li>
</ul>
</div></div>



<p class="is-style-balloon_box u-mb-ctrl u-mb-10"><strong>Guzzleとは？</strong></p>



<p class="has-border -border01">PHPのHTTPクライアントのパッケージです。<br>今回は<strong><span class="swl-marker mark_yellow">URLを指定して、そのページのドキュメントをダウンロードするために使用</span></strong>します。</p>



<p class="is-style-balloon_box u-mb-ctrl u-mb-10"><strong>PHP DOM Wrapperとは？</strong></p>



<p class="has-border -border01">Webページのドキュメントをパース（構文解析）できるパッケージです。<br>今回は<strong><span class="swl-marker mark_yellow">Guzzleでダウンロードしたドキュメントをパースするために使用</span></strong>します。</p>



<h3 class="wp-block-heading">【その③】スクレイピングを行う際の注意点</h3>



<p>スクレイピングは<strong>プログラムによってWebサイトの情報を自動で抽出する技術</strong>です。</p>



<p>そのため、人が手動でサイトへアクセスするのとは比にならない速度で処理が進みます。</p>



<p>何も対策をしないと、最悪スクレイピング対象のサイトのサーバーが過負荷に耐えられずに落ちてしまい、運営者から法的処置を取られてしまう可能性もあります。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>スクレイピングを本番サイト上で実施する際には主に<strong>以下の点に注意</strong>しましょう！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<div class="swell-block-capbox cap_box" data-colset="col3"><div class="cap_box_ttl"><span><span data-icon="LsAlert" data-id="0" style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNNDcgMzcuOSAyNy41IDQuMWMtLjctMS4zLTItMi0zLjUtMnMtMi43LjctMy41IDJMMSAzNy45Yy0uNyAxLjMtLjcgMi43IDAgNCAuNyAxLjMgMiAyIDMuNSAyaDM5LjFjMS40IDAgMi43LS43IDMuNS0yIC42LTEuMy42LTIuNy0uMS00ek0yMS41IDE3LjVjMC0xLjQgMS4xLTIuNSAyLjUtMi41czIuNSAxLjEgMi41IDIuNXYxMGMwIDEuNC0xLjEgMi41LTIuNSAyLjVzLTIuNS0xLjEtMi41LTIuNXYtMTB6TTI0IDM4Yy0xLjcgMC0zLTEuMy0zLTNzMS4zLTMgMy0zIDMgMS4zIDMgMy0xLjMgMy0zIDN6Ij48L3BhdGg+PC9zdmc+)" aria-hidden="true" class="swl-inline-icon"> </span><strong> スクレイピングの注意点</strong></span></div><div class="cap_box_content">
<ul class="wp-block-list is-style-num_circle -list-under-dashed">
<li>対象のサイトに過剰な負荷をかけないように、情報取得処理の間に待機時間を設ける</li>



<li>スクレイピングが禁止されているサイトでは行わない</li>



<li>プログラムの不具合によりアクセス先のサイトに過剰な負荷をかけないよう、ローカル環境でのテストやデバッグを徹底する</li>
</ul>
</div></div>



<p class="is-style-icon_info">各サイトにおける<strong>スクレイピングに関するルール</strong>は、基本的に「<strong>https://ドメイン/robots.txt</strong>」に記載されています。<br>また、サービスによっては<strong>利用規約</strong>にもスクレイピングに関する禁止事項などを掲載しているので、そちらも事前にしっかり確認するようにしましょう</p>



<p class="is-style-icon_announce">なお、この記事でご紹介するスクレイピングのソースコードでは、スクレイピング練習用サイト「<a href="https://scraping-training.vercel.app/">スクレイピング練習場</a>」様を利用させていただいています。<br>気兼ねなくスクレイピングの練習が可能ですのでご安心ください。（運営者様に感謝です）</p>


<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4374558503914683"
     crossorigin="anonymous"></script>
<!-- ディスプレイ【横長】 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-4374558503914683"
     data-ad-slot="9744298852"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">【事前準備】Composerでパッケージをインストールする</h2>



<p>それでは、ここから実際にスクレイピング機能を実装するための作業を進めていきます。</p>



<p>まずは今回のスクレイピングで利用する以下のパッケージをインストールしていきます。</p>



<div class="swell-block-capbox cap_box is-style-onborder_ttl2"><div class="cap_box_ttl"><span>使用するライブラリパッケージ</span></div><div class="cap_box_content">
<ul class="wp-block-list -list-under-dashed is-style-num_circle">
<li>Guzzle</li>



<li>PHP DOM Wrapper</li>
</ul>
</div></div>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>パッケージのインストールには<strong>Composer</strong>を使用します。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<div class="wp-block-group is-style-big_icon_good"><div class="wp-block-group__inner-container">
<p class="is-style-bg_stripe">「<strong>Composer</strong>ってなに？」という方やまだインストールしていないという方は以下の記事をご覧ください。</p>


<div class="swell-block-postLink">			<a href="https://kekenta-it-blog.com/composer-install/" class="c-blogLink -internal" data-style="text">
				<!-- <i class="c-blogLink__icon icon-link" role="presentation"></i> -->
				<span class="c-blogLink__icon">
					<svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-link __svg" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M21.2 30.2c-.5 0-1-.2-1.4-.6l-.7-.7c-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l7.1-7.1c2.3-2.3 5.3-3.5 8.5-3.5s6.2 1.2 8.5 3.5c4.7 4.7 4.7 12.3 0 17l-3.5 3.5c-.8.8-2 .8-2.8 0-.8-.8-.8-2 0-2.8l3.5-3.5c3.1-3.1 3.1-8.2 0-11.3-1.5-1.5-3.5-2.3-5.7-2.3-2.1 0-4.2.8-5.7 2.3l-7.1 7.1c-1.5 1.5-2.3 3.5-2.3 5.7s.8 4.2 2.3 5.7l.7.7c.8.8.8 2 0 2.8-.4.3-.9.5-1.4.5z" /><path d="M13.4 46.6c-3.1 0-6.1-1.2-8.5-3.5-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l3.5-3.5c.8-.8 2-.8 2.8 0 .8.8.8 2 0 2.8l-3.5 3.5c-1.5 1.5-2.3 3.5-2.3 5.7 0 2.1.8 4.2 2.3 5.7 3.1 3.1 8.2 3.1 11.3 0l7.1-7.1c1.5-1.5 2.3-3.5 2.3-5.7 0-2.1-.8-4.2-2.3-5.7l-.7-.7c-.8-.8-.8-2 0-2.8.8-.8 2-.8 2.8 0l.7.7c2.3 2.3 3.5 5.3 3.5 8.5s-1.2 6.2-3.5 8.5l-7.1 7.1c-2.3 2.3-5.3 3.5-8.4 3.5z" /></svg>				</span>
				<span class="c-blogLink__text">【Windows】Composerのインストール方法｜エラー時の対処も解説</span>
			</a>
		</div>

<div class="swell-block-postLink">			<a href="https://kekenta-it-blog.com/composer-how-to/" class="c-blogLink -internal" data-style="text">
				<!-- <i class="c-blogLink__icon icon-link" role="presentation"></i> -->
				<span class="c-blogLink__icon">
					<svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-link __svg" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M21.2 30.2c-.5 0-1-.2-1.4-.6l-.7-.7c-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l7.1-7.1c2.3-2.3 5.3-3.5 8.5-3.5s6.2 1.2 8.5 3.5c4.7 4.7 4.7 12.3 0 17l-3.5 3.5c-.8.8-2 .8-2.8 0-.8-.8-.8-2 0-2.8l3.5-3.5c3.1-3.1 3.1-8.2 0-11.3-1.5-1.5-3.5-2.3-5.7-2.3-2.1 0-4.2.8-5.7 2.3l-7.1 7.1c-1.5 1.5-2.3 3.5-2.3 5.7s.8 4.2 2.3 5.7l.7.7c.8.8.8 2 0 2.8-.4.3-.9.5-1.4.5z" /><path d="M13.4 46.6c-3.1 0-6.1-1.2-8.5-3.5-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l3.5-3.5c.8-.8 2-.8 2.8 0 .8.8.8 2 0 2.8l-3.5 3.5c-1.5 1.5-2.3 3.5-2.3 5.7 0 2.1.8 4.2 2.3 5.7 3.1 3.1 8.2 3.1 11.3 0l7.1-7.1c1.5-1.5 2.3-3.5 2.3-5.7 0-2.1-.8-4.2-2.3-5.7l-.7-.7c-.8-.8-.8-2 0-2.8.8-.8 2-.8 2.8 0l.7.7c2.3 2.3 3.5 5.3 3.5 8.5s-1.2 6.2-3.5 8.5l-7.1 7.1c-2.3 2.3-5.3 3.5-8.4 3.5z" /></svg>				</span>
				<span class="c-blogLink__text">【初心者向け】Composerの使い方を丁寧に解説！【PHP】</span>
			</a>
		</div></div></div>



<h3 class="wp-block-heading">パッケージのインストール手順</h3>



<p class="is-style-icon_pen">この記事では<strong>XAMPP環境</strong>で操作を進めていきます。</p>



<div class="swell-block-capbox cap_box is-style-shadow"><div class="cap_box_ttl"><span><span data-icon="LsLightbulb" data-id="0" style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" aria-hidden="true" class="swl-inline-icon"> </span><strong> パッケージをComposerでインストールする大まかな流れ</strong></span></div><div class="cap_box_content">
<ul class="wp-block-list is-style-num_circle -list-under-dashed">
<li>スクレイピング実装用のプロジェクトディレクトリを作成する</li>



<li>作成したプロジェクトディレクトリ内に<code class="file_name">composer.json</code>ファイルを作成する</li>



<li><code class="file_name">composer.json</code>ファイル内にパッケージインストール用の記述をする</li>
</ul>
</div></div>



<div class="swell-block-step" data-num-style="circle">
<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">スクレイピング実装用のプロジェクトディレクトリを作成する</div><div class="swell-block-step__body">
<p class="is-style-bg_stripe">まずはいつもPHPでアプリを作成するときと同様に、プロジェクトディレクトリを作成します。</p>


<div class="wp-block-image is-style-shadow size_s">
<figure class="aligncenter size-full"><img decoding="async" width="799" height="461" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/php-scparing-use-package01.jpg" alt="プロジェクトディレクトリを作成" class="wp-image-10343" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/08/php-scparing-use-package01.jpg 799w, https://kekenta-it-blog.com/wp-content/uploads/2024/08/php-scparing-use-package01-300x173.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2024/08/php-scparing-use-package01-768x443.jpg 768w" sizes="(max-width: 799px) 100vw, 799px" /><figcaption class="wp-element-caption">プロジェクトディレクトリを作成</figcaption></figure>
</div></div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">作成したプロジェクトディレクトリ内にcomposer.jsonファイルを作成する</div><div class="swell-block-step__body">
<p class="is-style-bg_stripe">続いて、作成したプロジェクトディレクトリ内に<code class="file_name">composer.json</code>ファイルを作成します。</p>


<div class="wp-block-image size_s is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="945" height="461" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/php-scparing-use-package02.jpg" alt="composer.jsonファイルを作成" class="wp-image-10347" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/08/php-scparing-use-package02.jpg 945w, https://kekenta-it-blog.com/wp-content/uploads/2024/08/php-scparing-use-package02-300x146.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2024/08/php-scparing-use-package02-768x375.jpg 768w" sizes="(max-width: 945px) 100vw, 945px" /><figcaption class="wp-element-caption">composer.jsonファイルを作成</figcaption></figure>
</div></div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">composer.jsonファイル内にパッケージインストール用の記述をする</div><div class="swell-block-step__body">
<p class="is-style-bg_stripe">普段お使いのテキストエディタで<code class="file_name">composer.json</code>ファイルを開き、下記を記述します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-json" data-file="composer.json" data-lang="JSON"><code>{
    &quot;require&quot;: {
        &quot;guzzlehttp/guzzle&quot;: &quot;*&quot;,
        &quot;scotteh/php-dom-wrapper&quot;: &quot;*&quot;
    }
}</code></pre></div>



<p class="is-style-big_icon_check">バージョンに「*」を指定することで最新バージョンがインストールされます。</p>
</div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">プロジェクトディレクトリでターミナルを開く</div><div class="swell-block-step__body">
<p class="is-style-bg_stripe">プロジェクトディレクトリ上でターミナルを開きます。</p>



<p class="is-style-balloon_box">Windows11の場合</p>



<p class="is-style-bg_grid has-border -border01 u-mb-ctrl u-mb-20">プロジェクトディレクトリ内で<strong>「右クリック」→「ターミナルで開く」をクリック</strong></p>



<p class="is-style-balloon_box">Windows10の場合</p>



<p class="has-border -border01 is-style-bg_grid">プロジェクトディレクトリ内で<strong>「Shift + 右クリック」→「ターミナルで開く」をクリック</strong><br>（※「ターミナルで開く」が無ければ「コマンドプロンプト」でもOK）</p>


<div class="wp-block-image size_s is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="745" height="400" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/php-scparing-use-package03.jpg" alt="ターミナルを開く" class="wp-image-10344" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/08/php-scparing-use-package03.jpg 745w, https://kekenta-it-blog.com/wp-content/uploads/2024/08/php-scparing-use-package03-300x161.jpg 300w" sizes="(max-width: 745px) 100vw, 745px" /><figcaption class="wp-element-caption">ターミナルを開く</figcaption></figure>
</div></div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">composer installコマンドを実行する</div><div class="swell-block-step__body">
<p class="is-style-bg_stripe">プロジェクトディレクトリ上でターミナルを開いたら<code>composer install</code>コマンドを実行します。</p>


<div class="wp-block-image is-style-shadow size_s">
<figure class="aligncenter size-full"><img decoding="async" width="745" height="400" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/php-scparing-use-package04.jpg" alt="composer installコマンドを実行" class="wp-image-10346" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/08/php-scparing-use-package04.jpg 745w, https://kekenta-it-blog.com/wp-content/uploads/2024/08/php-scparing-use-package04-300x161.jpg 300w" sizes="(max-width: 745px) 100vw, 745px" /><figcaption class="wp-element-caption">composer installコマンドを実行</figcaption></figure>
</div>


<div class="wp-block-group is-style-big_icon_good"><div class="wp-block-group__inner-container">
<p class="is-style-icon_good">少し待ってみて、プロジェクトディレクトリ内に<code class="dir_name">vendor</code>ディレクトリと<code class="file_name">composer.lock</code>ファイルが作成されていればOKです。</p>


<div class="wp-block-image is-style-shadow size_s">
<figure class="aligncenter size-full"><img decoding="async" width="809" height="461" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/php-scparing-use-package05.jpg" alt="vendorディレクトリとcomposer.lockファイルを確認" class="wp-image-10345" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/08/php-scparing-use-package05.jpg 809w, https://kekenta-it-blog.com/wp-content/uploads/2024/08/php-scparing-use-package05-300x171.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2024/08/php-scparing-use-package05-768x438.jpg 768w" sizes="(max-width: 809px) 100vw, 809px" /><figcaption class="wp-element-caption">vendorディレクトリとcomposer.lockファイルを確認</figcaption></figure>
</div></div></div>



<p class="is-style-icon_info">もし何らかの<span class="swl-marker mark_orange"><strong>エラーが発生した場合</strong></span>は<br><strong>①<code class="file_name">composer.json</code>ファイルに不要な全角スペースや文字列が含まれている<br>②コマンドの入力ミス<br>③ターミナルをプロジェクトディレクトリ以外の場所で開いてしまっている</strong><br>などの原因が考えられます。</p>
</div></div>
</div>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>以上で今回使用する<strong>２つのパッケージのインストールが完了</strong>しました！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>このあとの章からは、実際にこれらの<strong>パッケージをファイル内に読み込んでスクレイピング</strong>を行っていきます。</p>


<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4374558503914683"
     crossorigin="anonymous"></script>
<!-- ディスプレイ【横長】 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-4374558503914683"
     data-ad-slot="9744298852"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">【基本】PHPでスクレイピングをする</h2>



<p class="is-style-icon_announce">前述のとおり、今回は<a href="https://scraping-training.vercel.app/">スクレイピング練習場</a>をお借りしてスクレイピングを実行していきます。</p>



<p class="has-text-align-center is-style-balloon_box">トップ画面</p>


<div class="wp-block-image is-style-browser_mac size_s">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="514" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/image-5-1024x514.png" alt="スクレイピング練習場" class="wp-image-10317" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/08/image-5-1024x514.png 1024w, https://kekenta-it-blog.com/wp-content/uploads/2024/08/image-5-300x151.png 300w, https://kekenta-it-blog.com/wp-content/uploads/2024/08/image-5-768x386.png 768w, https://kekenta-it-blog.com/wp-content/uploads/2024/08/image-5.png 1103w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">スクレイピング練習場</figcaption></figure>
</div>


<p class="is-style-bg_stripe">今回作成する<strong>スクレイピングを実行するための基本的なソースコード</strong>は以下のとおりです。<br>※<code class="file_name">scrap.php</code>というファイルを新規に作成しています。</p>



<h3 class="wp-block-heading"><strong>【ソースコード】スクレイピングを実行する</strong></h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-file="scrap.php" data-lang="PHP"><code>&lt;?php 

// Composerでインストールしたパッケージを読み込む
require_once __DIR__ . &#39;/vendor/autoload.php&#39;;

use DOMWrap\Document;
use GuzzleHttp\Client;

// スクレイピング対象のURL
$url = &#39;https://scraping-training.vercel.app/site?postCount=20&title=%E3%81%93%E3%82%8C%E3%81%AF{no}%E3%81%AE%E8%A8%98%E4%BA%8B%E3%81%A7%E3%81%99&dateFormat=YYYY-MM-DD&isTime=true&timeFormat=&isImage=true&interval=360&isAgo=true&countPerPage=2&page=1&robots=true&&#39;;

// URLを元にページ内のHTML構造を取得
$client = new Client;
$response = $client-&gt;get( $url );
$html     = (string) $response-&gt;getBody();
$doc      = new Document;
$node     = $doc-&gt;html( $html );

// スクレイピングを実行
// １つ目の記事の「タイトル」と「投稿日時」を取得
$title     = $node-&gt;find( &#39;article:nth-child(1) .post-title&#39; )-&gt;text();
$post_date = $node-&gt;find( &#39;article:nth-child(1) time&#39; )-&gt;text(); 

// スクレイピングした情報を出力
echo &#39;投稿タイトル：&#39; . $title . &#39;&lt;br /&gt;&#39;;
echo &#39;投稿日時：&#39; . $post_date;

?&gt;</code></pre></div>



<p class="is-style-icon_good">上記のソースコードを記述した上で、<code class="file_name">scrap.php</code>ファイルへアクセスすると、スクレイピングが実行されてその結果がブラウザ上に表示されます。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>以下より<strong>ソースコードの解説</strong>をしていきます！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<h3 class="wp-block-heading">解説</h3>



<p class="is-style-balloon_box2 u-mb-ctrl u-mb-10">① パッケージを読み込む</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-lang="PHP"><code>// Composerでインストールしたパッケージを読み込む
require_once __DIR__ . &#39;/vendor/autoload.php&#39;;</code></pre></div>



<p class="is-style-big_icon_check">ここではComposerの機能のひとつ「<strong>オートロード</strong>」を利用しています。<br>本来ならパッケージごとにrequireを記述する必要がありますが、「オートロード」を利用することで、上記の<strong>１行だけでComposerでインストールしたパッケージをファイルへ読み込むことが可能</strong>です。</p>



<p class="is-style-balloon_box2 u-mb-ctrl u-mb-10">② パッケージのクラスを使用できるようにする</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-lang="PHP"><code>use DOMWrap\Document;
use GuzzleHttp\Client;</code></pre></div>



<p class="is-style-balloon_box2 u-mb-ctrl u-mb-10">③ スクレイピングしたいページのURLを記述</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-lang="PHP"><code>// スクレイピング対象のURL
$url = &#39;https://　～省略～　&#39;;</code></pre></div>



<p class="is-style-balloon_box2 u-mb-ctrl u-mb-10">④ URL先のドキュメントをダウンロード　→　パース（構文解析）</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-lang="PHP"><code>// URLを元にページ内のHTML構造を取得
$client = new Client;
$response = $client-&gt;get( $url );
$html     = (string) $response-&gt;getBody();
$doc      = new Document;
$node     = $doc-&gt;html( $html );</code></pre></div>



<p class="is-style-balloon_box2 u-mb-ctrl u-mb-10">⑤ CSSセレクターを指定することで欲しい情報を取得</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-lang="PHP"><code>// スクレイピングを実行
// １つ目の記事の「タイトル」と「投稿日時」を取得
$title     = $node-&gt;find( &#39;article:nth-child(1) .post-title&#39; )-&gt;text();
$post_date = $node-&gt;find( &#39;article:nth-child(1) time&#39; )-&gt;text(); </code></pre></div>



<div class="wp-block-group is-style-big_icon_good"><div class="wp-block-group__inner-container">
<p class="is-style-icon_pen">このように、<strong><span class="swl-marker mark_yellow">スクレイピングでは欲しい情報のCSSセレクターを指定</span></strong>します。</p>



<p>※今回は例として「１ページにある１つ目の記事の『タイトル』と『投稿日時』」を取得しています。</p>


<div class="wp-block-image is-style-shadow u-mb-ctrl u-mb-20">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="791" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/php-scparing-use-package06-1024x791.jpg" alt="スクレイピング実行結果" class="wp-image-10348" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/08/php-scparing-use-package06-1024x791.jpg 1024w, https://kekenta-it-blog.com/wp-content/uploads/2024/08/php-scparing-use-package06-300x232.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2024/08/php-scparing-use-package06-768x593.jpg 768w, https://kekenta-it-blog.com/wp-content/uploads/2024/08/php-scparing-use-package06.jpg 1101w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">スクレイピング実行結果</figcaption></figure>
</div>


<p class="is-style-balloon_box2 u-mb-ctrl u-mb-20"><strong>CSSセレクターの確認方法がご不明</strong>な方におすすめの記事</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2024/04/eye-catch__css-veri-g-tool__782-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/css-veri-g-tool/">検証ツールでCSSの反映状況を確認して対処する方法【デベロッパーツール】</a>
						<span class="p-blogCard__excerpt">今回は Google chromeの検証ツールを使用してCSSの反映状況を確認する方法+CSSが反映されていないときの対処方法 について解説をします。 なお、CSSが反映されない原因&#8230;</span>					</div>
				</div>
			</div>
		</div></div></div>



<p class="is-style-balloon_box2 u-mb-ctrl u-mb-10">⑥ スクレイピングした情報をブラウザに出力</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-lang="PHP"><code>// スクレイピングした情報を出力
echo &#39;投稿タイトル：&#39; . $title . &#39;&lt;br /&gt;&#39;;
echo &#39;投稿日時：&#39; . $post_date;</code></pre></div>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>以上が<strong>スクレイピングのもっとも基本的なソースコード</strong>です！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>これをベースとし、あとは</p>



<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li>すべてのページの全記事の情報を取得する</li>



<li>取得した情報をデータベースへ保存する</li>
</ul>



<p>などの実装ができれば、スクレイピングの基礎は身につけたと言えるのではないでしょうか。</p>


<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4374558503914683"
     crossorigin="anonymous"></script>
<!-- ディスプレイ【横長】 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-4374558503914683"
     data-ad-slot="9744298852"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">【発展編】スクレイピングの基本コードをベースに実践的な実装に挑戦！</h2>



<p class="is-style-bg_stripe">ここからはスクレイピングの基本的なソースコードを改変した、<strong>より発展的なソースコード</strong>をご紹介します。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>おおよその流れはお伝えしますが、<strong>細かい部分についてはあえて解説を割愛</strong>させていただきます。<br>まずはぜひ<strong>ご自身で実装に挑戦していただき、その答え合わせとしてご活用</strong>していただければと思います！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<h3 class="wp-block-heading">【発展①】サイト内すべての記事情報をスクレイピングする</h3>



<div class="swell-block-capbox cap_box is-style-shadow"><div class="cap_box_ttl"><span><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" data-icon="LsLightbulb" data-id="0" aria-hidden="true" class="swl-inline-icon">  <strong>実装のポイント</strong></span></span></div><div class="cap_box_content">
<ul class="wp-block-list is-style-num_circle -list-under-dashed">
<li><strong>全ページ数</strong>を取得する必要がある</li>



<li><strong>各ページ内の記事数</strong>を取得する必要がある</li>



<li><strong>記事の並び順に合わせたCSSセレクター</strong>を指定する必要がある</li>



<li>ページ番号が変わる＝<strong>URLが変わる</strong>（どんな法則で変わるのか？を知り、その性質を利用する）</li>



<li>（本番サイトを想定して）<strong>スクレイピングの実行間隔をあける</strong></li>
</ul>
</div></div>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-file="scrap.php" data-lang="PHP"><code>&lt;?php 

require_once __DIR__ . &#39;/vendor/autoload.php&#39;;

use DOMWrap\Document;
use GuzzleHttp\Client;

// 最後のページ番号
$last_page_num = getLastPageNum();

$client = new Client;

// ページごとの記事情報をスクレイピング
for( $i=1; $i&lt;=$last_page_num; $i++ ){

    // スクレイピング対象のURL
    $url = &#39;https://scraping-training.vercel.app/site?postCount=20&title=%E3%81%93%E3%82%8C%E3%81%AF{no}%E3%81%AE%E8%A8%98%E4%BA%8B%E3%81%A7%E3%81%99&dateFormat=YYYY-MM-DD&isTime=true&timeFormat=&isImage=true&interval=360&isAgo=true&countPerPage=2&page=&#39;. $i .&#39;&robots=true&&#39;;

    // URLを元にページ内のHTML構造を取得
    $response = $client-&gt;get( $url );
    $html     = (string) $response-&gt;getBody();
    $doc      = new Document;
    $node     = $doc-&gt;html( $html );

    // ページ内の記事数
    $article_num  = getArticleNum( $node );

    // セレクター
    $selectors = setSelectors( $article_num );

    // スクレイピングを実行
    // 現在のページ内の記事の「タイトル」と「投稿日時」を取得
    foreach( $selectors as $selector ){
        $title     = $node-&gt;find( $selector[&#39;title&#39;] )-&gt;text();
        $post_date = $node-&gt;find( $selector[&#39;post_date&#39;] )-&gt;text(); 

        // スクレイピングした情報を出力
        echo &#39;投稿タイトル：&#39; . $title . &#39;&lt;br /&gt;&#39;;
        echo &#39;投稿日時：&#39; . $post_date . &#39;&lt;br /&gt;&#39;;
        echo &#39;-----------------&lt;br /&gt;&#39;;

        // 待機時間
        sleep(3);
    }
}


/***********************************/
/* 関数定義 */
/***********************************/

/**
 * 最後のページを取得する
 */
function getLastPageNum()
{
    $client = new Client;

    // 取得情報
    $url = &#39;https://scraping-training.vercel.app/site?postCount=20&title=%E3%81%93%E3%82%8C%E3%81%AF{no}%E3%81%AE%E8%A8%98%E4%BA%8B%E3%81%A7%E3%81%99&dateFormat=YYYY-MM-DD&isTime=true&timeFormat=&isImage=true&interval=360&isAgo=true&countPerPage=2&page=1&robots=true&&#39;;

    // セレクター
    $last_page_selector = &#39;.pagination &gt; a:nth-last-child(2) &gt; span&#39;;

    // レスポンス
    $response = $client-&gt;get( $url );
    $html     = (string) $response-&gt;getBody();
    $doc      = new Document;
    $node     = $doc-&gt;html( $html );

    // 取得情報
    $last_page_num = $node-&gt;find( $last_page_selector )-&gt;text();

    return $last_page_num;
}

/**
 * ページ内の記事数を取得
 */
function getArticleNum( $doc )
{
    $article_node = $doc-&gt;find( &#39;article&#39; );
    return $article_node-&gt;count();
}

/**
 * ページ内の記事情報を取得するためのセレクターをセット
 */
function setSelectors( $article_num )
{
    $selectors = array();
    for( $j=1; $j&lt;=$article_num; $j++ ){
        $selectors[] = [
            &#39;title&#39;     =&gt; &#39;article:nth-child(&#39; . $j . &#39;) .post-title&#39;,
            &#39;post_date&#39; =&gt; &#39;article:nth-child(&#39; . $j . &#39;) time&#39;,
        ];
    }
    return $selectors;
}

/***********************************/

?&gt;
</code></pre></div>


<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4374558503914683"
     crossorigin="anonymous"></script>
<!-- ディスプレイ【横長】 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-4374558503914683"
     data-ad-slot="9744298852"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h3 class="wp-block-heading">【発展②】スクレイピングした情報をデータベースに保存する</h3>



<p class="is-style-bg_stripe">この【発展②】は、<strong>【発展①】にデータベースへの保存機能を取り付けたもの</strong>です。<br>そのため、まずは【発展①】の理屈をきちんと理解してから挑戦することをおすすめします。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-file="scrap.php" data-lang="PHP"><code>&lt;?php 

require_once __DIR__ . &#39;/vendor/autoload.php&#39;;

use DOMWrap\Document;
use GuzzleHttp\Client;

/**
 * DB接続情報
 */
const DB_HOST     = &#39;mysql:dbname=scraping;host=127.0.0.1;charset=utf8&#39;;
const DB_USER     = &#39;kekenta&#39;;
const DB_PASSWORD = &#39;kekenta_pass&#39;;

/**
 * 取得情報をデータベースに格納する
 * データベース接続処理
 */
try {
    $pdo = new PDO(DB_HOST, DB_USER, DB_PASSWORD, [
        PDO::ATTR_ERRMODE          =&gt; PDO::ERRMODE_EXCEPTION, 
        PDO::ATTR_EMULATE_PREPARES =&gt; false,
    ]);
    $sql = (&#39;
        INSERT INTO
            scraping_practice01(title, post_date)
        VALUES
            (:TITLE, :POST_DATE)
    &#39;);
    $stmt = $pdo-&gt;prepare($sql);
} catch (PDOException $e) {
    echo &#39;接続失敗&#39; . $e-&gt;getMessage();
    exit();
}

// 最後のページ番号
$last_page_num = getLastPageNum();

$client = new Client;
for( $i=1; $i&lt;=$last_page_num; $i++ ){

    // スクレイピング対象のURL
    $url = &#39;https://scraping-training.vercel.app/site?postCount=20&title=%E3%81%93%E3%82%8C%E3%81%AF{no}%E3%81%AE%E8%A8%98%E4%BA%8B%E3%81%A7%E3%81%99&dateFormat=YYYY-MM-DD&isTime=true&timeFormat=&isImage=true&interval=360&isAgo=true&countPerPage=2&page=&#39;. $i .&#39;&robots=true&&#39;;

    // URLを元にページ内のHTML構造を取得
    $response = $client-&gt;get( $url );
    $html     = (string) $response-&gt;getBody();
    $doc      = new Document;
    $node     = $doc-&gt;html( $html );

    // ページ内の記事数
    $article_num  = getArticleNum( $node );

    // セレクター
    $selectors = setSelectors( $article_num );

    // スクレイピングを実行
    // 現在のページ内の記事の「タイトル」と「投稿日時」を取得
    foreach( $selectors as $selector ){
        $title     = $node-&gt;find( $selector[&#39;title&#39;] )-&gt;text();
        $post_date = $node-&gt;find( $selector[&#39;post_date&#39;] )-&gt;text(); 
        $post_date = changeTimeToToday($post_date);

        // 取得情報をデータベースに格納する
        $stmt-&gt;bindValue(&#39;:TITLE&#39;    , $title    , PDO::PARAM_STR);
        $stmt-&gt;bindValue(&#39;:POST_DATE&#39;, $post_date, PDO::PARAM_STR);
        $stmt-&gt;execute();

        // 待機時間
        sleep(3);
    }
}

// DBとの接続を切る
$pdo = null;
$stmt = null;


/***********************************/
/* 関数定義 */
/***********************************/

/**
 * 最後のページを取得する
 */
function getLastPageNum()
{
    $client = new Client;

    // 取得情報
    $url = &#39;https://scraping-training.vercel.app/site?postCount=20&title=%E3%81%93%E3%82%8C%E3%81%AF{no}%E3%81%AE%E8%A8%98%E4%BA%8B%E3%81%A7%E3%81%99&dateFormat=YYYY-MM-DD&isTime=true&timeFormat=&isImage=true&interval=360&isAgo=true&countPerPage=2&page=1&robots=true&&#39;;

    // セレクター
    $last_page_selector = &#39;.pagination &gt; a:nth-last-child(2) &gt; span&#39;;

    // レスポンス
    $response = $client-&gt;get( $url );
    $html     = (string) $response-&gt;getBody();
    $doc      = new Document;
    $node     = $doc-&gt;html( $html );

    // 取得情報
    $last_page_num = $node-&gt;find( $last_page_selector )-&gt;text();

    return $last_page_num;
}

/**
 * ページ内の記事数を取得
 */
function getArticleNum( $doc )
{
    $article_node = $doc-&gt;find( &#39;article&#39; );
    return $article_node-&gt;count();
}

/**
 * ページ内の記事情報を取得するためのセレクターをセット
 */
function setSelectors( $article_num )
{
    $selectors = array();
    for( $j=1; $j&lt;=$article_num; $j++ ){
        $selectors[] = [
            &#39;title&#39;     =&gt; &#39;article:nth-child(&#39; . $j . &#39;) .post-title&#39;,
            &#39;post_date&#39; =&gt; &#39;article:nth-child(&#39; . $j . &#39;) time&#39;,
        ];
    }
    return $selectors;
}

/**
 * 今日の投稿なら$post_dateに「今日の日付」をセットする
 */
function changeTimeToToday( $post_date )
{
    if( strpos($post_date,(string)&#39;前&#39;) !== false ){
        $post_date = date(&quot;Y-m-d&quot;);
    }
    return $post_date;
}

/***********************************/

?&gt;
</code></pre></div>


<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4374558503914683"
     crossorigin="anonymous"></script>
<!-- ディスプレイ【横長】 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-4374558503914683"
     data-ad-slot="9744298852"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">まとめ</h2>



<p>いかがだったでしょうか。</p>



<p>PHPでスクレイピングをする方法はいくつかありますが、今回は２つのパッケージを組み合わせる方法を採用してみました。</p>



<div class="swell-block-capbox cap_box is-style-onborder_ttl2"><div class="cap_box_ttl"><span>この記事で使用したライブラリパッケージ</span></div><div class="cap_box_content">
<ul class="wp-block-list -list-under-dashed is-style-num_circle">
<li>Guzzle</li>



<li>PHP DOM Wrapper</li>
</ul>
</div></div>



<p>スクレイピングをするための最低限のソースコードの型はほとんど決まっています。</p>



<p>しかし、サイトに合わせて自由に情報を取得するとなった場合、<strong><span class="swl-marker mark_yellow">サイトの構造を理解し、それに合わせたソースコードを記述する</span></strong>必要があります。</p>



<p>スクレイピングを実装するのが難しいと感じるとしたら、大多数はこの部分に対してなのではないかと思います。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>スクレイピングに慣れるまでは、この記事でご紹介した<a href="https://scraping-training.vercel.app/">スクレイピング練習場</a>を利用するのもオススメです。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>そうすれば、うっかりどこかのサイトへ過負荷をかけて迷惑をかけてしまう（最悪法的な処置を取られてしまう）ということもありません。</p>



<p>この記事をご参考に、ぜひPHPでスクレイピングに挑戦してみてください！</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/eye-catch__composer-how-to__9871-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/composer-how-to/">【初心者向け】Composerの使い方を丁寧に解説！【PHP】</a>
						<span class="p-blogCard__excerpt">Composerってよく見かけるけど、イマイチ使い方がわからないな…… 今回はこうしたお悩みをお持ちの方へ向けて PHPのWebアプリ開発にComposerを導入してパッケージライブ&#8230;</span>					</div>
				</div>
			</div>
		</div>


<p class="is-style-balloon_box2">Webアプリ開発に興味がある方におすすめの記事</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/11/eye-catch__board-app-php__2739-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/board-app-php/">掲示板アプリの作り方｜プログラミング初心者向け【PHP】</a>
						<span class="p-blogCard__excerpt">この記事ではPHPによる 掲示板アプリの作り方 をご紹介します。 掲示板アプリを作成するためには、PHPの基本文法をはじめ、データベース操作（いわゆるCRUD）やHTTPリク&#8230;</span>					</div>
				</div>
			</div>
		</div>

<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2024/07/eye-catch__php-login-app__9392-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/php-login-app/">【PHP】ログイン機能の仕組み・ソースコード解説｜ハッシュ値とは？</a>
						<span class="p-blogCard__excerpt">PHPでログイン機能を実装してみたいけど、いざ作ろうとすると何をどうしていいのか分からないな…… この記事ではPHPでログイン機能を実装する方法を解説します。  この記&#8230;</span>					</div>
				</div>
			</div>
		</div>]]></content:encoded>
					
					<wfw:commentRss>https://kekenta-it-blog.com/php-scraping-use-package/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【初心者向け】Composerの使い方を丁寧に解説！【PHP】</title>
		<link>https://kekenta-it-blog.com/composer-how-to/</link>
					<comments>https://kekenta-it-blog.com/composer-how-to/#respond</comments>
		
		<dc:creator><![CDATA[ケケンタ]]></dc:creator>
		<pubDate>Mon, 12 Aug 2024 12:31:11 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Webアプリ]]></category>
		<category><![CDATA[Composer]]></category>
		<category><![CDATA[パッケージ]]></category>
		<guid isPermaLink="false">https://kekenta-it-blog.com/?p=9871</guid>

					<description><![CDATA[<p><img src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/eye-catch__composer-how-to__9871-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>今回はこうしたお悩みをお持ちの方へ向けて PHPのWebアプリ開発にComposerを導入してパッケージライブラリを使用する方法 を解説します。 Composerのインストールがお済みでない場合、まずは以下の記事をご覧く [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/eye-catch__composer-how-to__9871-1024x576.jpg" class="webfeedsFeaturedVisual" /></p><div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/困った顔-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/困った顔-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>Composerってよく見かけるけど、イマイチ使い方がわからないな……</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>今回はこうしたお悩みをお持ちの方へ向けて</p>



<p class="has-text-align-center is-style-big_kakko_box"><strong>PHPのWebアプリ開発にComposerを導入して<br>パッケージライブラリを使用する方法</strong></p>



<p>を解説します。</p>



<p class="is-style-balloon_box2"><strong>Composerのインストール</strong>がお済みでない場合、まずは以下の記事をご覧ください。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/eye-catch__composer-install__9757-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/composer-install/">【Windows】Composerのインストール方法｜エラー時の対処も解説</a>
						<span class="p-blogCard__excerpt">こんにちは！　ケケンタです。 この記事ではPHPでWebアプリ開発を行うなら必須の Composerのインストール方法（Windows版） を解説していきます。 PHPを始めたばかりの&#8230;</span>					</div>
				</div>
			</div>
		</div>

<div class="swell-block-postLink">			<a href="https://kekenta-it-blog.com/alone-php-study/" class="c-blogLink -internal" data-style="text">
				<!-- <i class="c-blogLink__icon icon-link" role="presentation"></i> -->
				<span class="c-blogLink__icon">
					<svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-link __svg" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M21.2 30.2c-.5 0-1-.2-1.4-.6l-.7-.7c-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l7.1-7.1c2.3-2.3 5.3-3.5 8.5-3.5s6.2 1.2 8.5 3.5c4.7 4.7 4.7 12.3 0 17l-3.5 3.5c-.8.8-2 .8-2.8 0-.8-.8-.8-2 0-2.8l3.5-3.5c3.1-3.1 3.1-8.2 0-11.3-1.5-1.5-3.5-2.3-5.7-2.3-2.1 0-4.2.8-5.7 2.3l-7.1 7.1c-1.5 1.5-2.3 3.5-2.3 5.7s.8 4.2 2.3 5.7l.7.7c.8.8.8 2 0 2.8-.4.3-.9.5-1.4.5z" /><path d="M13.4 46.6c-3.1 0-6.1-1.2-8.5-3.5-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l3.5-3.5c.8-.8 2-.8 2.8 0 .8.8.8 2 0 2.8l-3.5 3.5c-1.5 1.5-2.3 3.5-2.3 5.7 0 2.1.8 4.2 2.3 5.7 3.1 3.1 8.2 3.1 11.3 0l7.1-7.1c1.5-1.5 2.3-3.5 2.3-5.7 0-2.1-.8-4.2-2.3-5.7l-.7-.7c-.8-.8-.8-2 0-2.8.8-.8 2-.8 2.8 0l.7.7c2.3 2.3 3.5 5.3 3.5 8.5s-1.2 6.2-3.5 8.5l-7.1 7.1c-2.3 2.3-5.3 3.5-8.4 3.5z" /></svg>				</span>
				<span class="c-blogLink__text">PHPはこうして習得した！約１年間の勉強内容【プログラミング独学】</span>
			</a>
		</div>

<div class="swell-block-postLink">			<a href="https://kekenta-it-blog.com/php-deploy-xserver-for-zip/" class="c-blogLink -internal" data-style="text">
				<!-- <i class="c-blogLink__icon icon-link" role="presentation"></i> -->
				<span class="c-blogLink__icon">
					<svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-link __svg" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M21.2 30.2c-.5 0-1-.2-1.4-.6l-.7-.7c-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l7.1-7.1c2.3-2.3 5.3-3.5 8.5-3.5s6.2 1.2 8.5 3.5c4.7 4.7 4.7 12.3 0 17l-3.5 3.5c-.8.8-2 .8-2.8 0-.8-.8-.8-2 0-2.8l3.5-3.5c3.1-3.1 3.1-8.2 0-11.3-1.5-1.5-3.5-2.3-5.7-2.3-2.1 0-4.2.8-5.7 2.3l-7.1 7.1c-1.5 1.5-2.3 3.5-2.3 5.7s.8 4.2 2.3 5.7l.7.7c.8.8.8 2 0 2.8-.4.3-.9.5-1.4.5z" /><path d="M13.4 46.6c-3.1 0-6.1-1.2-8.5-3.5-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l3.5-3.5c.8-.8 2-.8 2.8 0 .8.8.8 2 0 2.8l-3.5 3.5c-1.5 1.5-2.3 3.5-2.3 5.7 0 2.1.8 4.2 2.3 5.7 3.1 3.1 8.2 3.1 11.3 0l7.1-7.1c1.5-1.5 2.3-3.5 2.3-5.7 0-2.1-.8-4.2-2.3-5.7l-.7-.7c-.8-.8-.8-2 0-2.8.8-.8 2-.8 2.8 0l.7.7c2.3 2.3 3.5 5.3 3.5 8.5s-1.2 6.2-3.5 8.5l-7.1 7.1c-2.3 2.3-5.3 3.5-8.4 3.5z" /></svg>				</span>
				<span class="c-blogLink__text">【PHP】エックスサーバーへデプロイする方法【初心者でも簡単！】</span>
			</a>
		</div>

<div class="swell-block-postLink">			<a href="https://kekenta-it-blog.com/school-php-and-wp/" class="c-blogLink -internal" data-style="text">
				<!-- <i class="c-blogLink__icon icon-link" role="presentation"></i> -->
				<span class="c-blogLink__icon">
					<svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-link __svg" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M21.2 30.2c-.5 0-1-.2-1.4-.6l-.7-.7c-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l7.1-7.1c2.3-2.3 5.3-3.5 8.5-3.5s6.2 1.2 8.5 3.5c4.7 4.7 4.7 12.3 0 17l-3.5 3.5c-.8.8-2 .8-2.8 0-.8-.8-.8-2 0-2.8l3.5-3.5c3.1-3.1 3.1-8.2 0-11.3-1.5-1.5-3.5-2.3-5.7-2.3-2.1 0-4.2.8-5.7 2.3l-7.1 7.1c-1.5 1.5-2.3 3.5-2.3 5.7s.8 4.2 2.3 5.7l.7.7c.8.8.8 2 0 2.8-.4.3-.9.5-1.4.5z" /><path d="M13.4 46.6c-3.1 0-6.1-1.2-8.5-3.5-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l3.5-3.5c.8-.8 2-.8 2.8 0 .8.8.8 2 0 2.8l-3.5 3.5c-1.5 1.5-2.3 3.5-2.3 5.7 0 2.1.8 4.2 2.3 5.7 3.1 3.1 8.2 3.1 11.3 0l7.1-7.1c1.5-1.5 2.3-3.5 2.3-5.7 0-2.1-.8-4.2-2.3-5.7l-.7-.7c-.8-.8-.8-2 0-2.8.8-.8 2-.8 2.8 0l.7.7c2.3 2.3 3.5 5.3 3.5 8.5s-1.2 6.2-3.5 8.5l-7.1 7.1c-2.3 2.3-5.3 3.5-8.4 3.5z" /></svg>				</span>
				<span class="c-blogLink__text">PHPやWordPressを学ぶのにおすすめのプログラミングスクール【７選】</span>
			</a>
		</div>


<h2 class="wp-block-heading">Composerがインストールされているかの確認</h2>



<p class="is-style-bg_stripe">念のため、まずは<strong>Composerがインストールされているかどうか</strong>を確認してみましょう。</p>



<div class="swell-block-step" data-num-style="circle">
<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">コマンドプロンプトを起動する</div><div class="swell-block-step__body">
<p><strong>Windowsキー</strong>を押してから検索窓に<code>cmd</code>と入力して、<strong>Enterキー</strong>を押します。</p>



<p>すると、<strong>コマンドプロンプト</strong>が起動します。</p>


<div class="wp-block-image is-style-shadow size_s">
<figure class="aligncenter size-full"><img decoding="async" width="718" height="418" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-install-win09.jpg" alt="コマンドプロンプトの起動" class="wp-image-9818" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-install-win09.jpg 718w, https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-install-win09-300x175.jpg 300w" sizes="(max-width: 718px) 100vw, 718px" /><figcaption class="wp-element-caption">コマンドプロンプトの起動</figcaption></figure>
</div></div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">「composer」コマンドを実行</div><div class="swell-block-step__body">
<p>続いて<code>composer</code>と入力して、Enterキーを押します。</p>



<p>数秒ほど待って、以下のような表示が出れば<strong>Composerは無事にインストールできています。</strong></p>


<div class="wp-block-image size_s is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="718" height="419" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-install-win10.jpg" alt="Composerインストール成功確認画面" class="wp-image-9819" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-install-win10.jpg 718w, https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-install-win10-300x175.jpg 300w" sizes="(max-width: 718px) 100vw, 718px" /><figcaption class="wp-element-caption">Composerインストール成功確認画面</figcaption></figure>
</div></div></div>
</div>



<p class="is-style-icon_info">もしComposerのインストールができていなければ、まずは以下の記事をご覧ください。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/eye-catch__composer-install__9757-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/composer-install/">【Windows】Composerのインストール方法｜エラー時の対処も解説</a>
						<span class="p-blogCard__excerpt">こんにちは！　ケケンタです。 この記事ではPHPでWebアプリ開発を行うなら必須の Composerのインストール方法（Windows版） を解説していきます。 PHPを始めたばかりの&#8230;</span>					</div>
				</div>
			</div>
		</div>

<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4374558503914683"
     crossorigin="anonymous"></script>
<!-- ディスプレイ【横長】 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-4374558503914683"
     data-ad-slot="9744298852"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">Composerを開発プロジェクトで使用する</h2>



<p class="is-style-bg_stripe"><strong><span class="swl-marker mark_yellow">Composerでパッケージを導入する大まかな手順</span></strong>は以下の通りです。</p>



<div class="swell-block-capbox cap_box is-style-shadow"><div class="cap_box_ttl"><span><strong>Composerでパッケージを導入する手順</strong></span></div><div class="cap_box_content">
<ul class="wp-block-list is-style-num_circle -list-under-dashed">
<li><code class="file_name">composer.json</code>ファイルを新規作成する</li>



<li><code class="file_name">composer.json</code>ファイルにインストールしたい<strong>パッケージ名：バージョン</strong>を記載する</li>



<li>ターミナルで<code>composer install</code>コマンドを実行する</li>



<li>パッケージを使用したいファイルで<code class="file_name">autoload.php</code>ファイルを読み込む</li>



<li>使用する<strong>「パッケージのクラス」</strong>を読み込む</li>
</ul>
</div></div>



<div class="swell-block-step" data-num-style="circle">
<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l"><strong>composer.jsonファイルを新規作成する</strong></div><div class="swell-block-step__body">
<p class="is-style-bg_stripe">Composerを導入したいプロジェクトディレクトリ内に<code class="file_name">composer.json</code>ファイルを新規作成します。</p>



<p class="has-text-align-center is-style-balloon_box">（例）TODOアプリ開発用に「todo」ディレクトリを用意している場合</p>


<div class="wp-block-image is-style-shadow size_s">
<figure class="aligncenter size-full"><img decoding="async" width="871" height="479" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/image.png" alt="" class="wp-image-9887" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/08/image.png 871w, https://kekenta-it-blog.com/wp-content/uploads/2024/08/image-300x165.png 300w, https://kekenta-it-blog.com/wp-content/uploads/2024/08/image-768x422.png 768w" sizes="(max-width: 871px) 100vw, 871px" /></figure>
</div></div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">composer.jsonにインストールしたいパッケージ名：バージョンを記載する</div><div class="swell-block-step__body">
<p class="is-style-icon_pen">以下は<strong>ログを取得するのに便利な「monolog」</strong>というパッケージライブラリをインストールする場合の記述です。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-json" data-file="composer.json" data-lang="JSON"><code>{
    &quot;require&quot;: {
        &quot;monolog/monolog&quot;: &quot;*&quot;
    }
}</code></pre></div>



<p class="is-style-big_icon_check">バージョンを「*」にすることで、<strong>その時点での最新バージョンをインストール</strong>してくれます。</p>



<p class="is-style-bg_stripe"><strong>パッケージ名の表記</strong>や<strong>最新以外のバージョン</strong>については、該当するパッケージ（今回だと「monolog」）のGithubのページでご確認いただけます。<br><a href="https://github.com/Seldaek/monolog">https://github.com/Seldaek/monolog</a></p>



<p class="is-style-balloon_box">パッケージ名の表記</p>



<div class="wp-block-group has-border -border02"><div class="wp-block-group__inner-container">
<p class="is-style-bg_stripe">パッケージにもよりますが、ページを少し下へスクロールした辺りにある「<strong>README</strong>」の最初の方に記載されていることが多いです。</p>


<div class="wp-block-image is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="620" height="187" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-init01.jpg" alt="パッケージ名の表記" class="wp-image-9970" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-init01.jpg 620w, https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-init01-300x90.jpg 300w" sizes="(max-width: 620px) 100vw, 620px" /><figcaption class="wp-element-caption">パッケージ名の表記</figcaption></figure>
</div></div></div>



<p class="is-style-balloon_box">バージョン確認（最新以外のバージョンを使用したいとき）</p>



<div class="wp-block-group has-border -border02"><div class="wp-block-group__inner-container">
<p class="is-style-bg_stripe"><a href="https://github.com/Seldaek/monolog">https://github.com/Seldaek/monolog</a>の右側メニューにバージョン情報が記述されています。</p>


<div class="wp-block-image is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="594" height="417" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-init02.jpg" alt="パッケージバージョンの確認" class="wp-image-9971" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-init02.jpg 594w, https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-init02-300x211.jpg 300w" sizes="(max-width: 594px) 100vw, 594px" /><figcaption class="wp-element-caption">パッケージバージョンの確認</figcaption></figure>
</div></div></div>
</div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">ターミナルで「composer install」コマンドを実行する<strong style="color: var(--color_text); font-family: var(--swl-font_family); letter-spacing: var(--swl-letter_spacing,normal); font-size: var(--swl-fz--large); background-color: var(--color_content_bg); display: inline !important;"></strong></div><div class="swell-block-step__body">
<p class="is-style-bg_stripe">プロジェクトディレクトリ内でターミナルを起動し、<code>composer install</code>コマンドを実行します。</p>



<p class="is-style-icon_pen">Windows11をお使いの場合、<br><strong>プロジェクトディレクトリ内で「右クリック」→「ターミナルで開く」をクリックする</strong><br>とターミナルを起動することができます。</p>


<div class="wp-block-image is-style-shadow size_s">
<figure class="aligncenter size-full"><img decoding="async" width="835" height="457" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/image-1.png" alt="プロジェクトディレクトリ内でターミナルを起動" class="wp-image-9901" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/08/image-1.png 835w, https://kekenta-it-blog.com/wp-content/uploads/2024/08/image-1-300x164.png 300w, https://kekenta-it-blog.com/wp-content/uploads/2024/08/image-1-768x420.png 768w" sizes="(max-width: 835px) 100vw, 835px" /><figcaption class="wp-element-caption">プロジェクトディレクトリ内でターミナルを起動</figcaption></figure>
</div>


<p class="has-text-align-center is-style-balloon_box">composer installを実行</p>


<div class="wp-block-image is-style-shadow size_s">
<figure class="aligncenter size-full"><img decoding="async" width="835" height="514" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/image-2.png" alt="composer installを実行" class="wp-image-9903" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/08/image-2.png 835w, https://kekenta-it-blog.com/wp-content/uploads/2024/08/image-2-300x185.png 300w, https://kekenta-it-blog.com/wp-content/uploads/2024/08/image-2-768x473.png 768w" sizes="(max-width: 835px) 100vw, 835px" /><figcaption class="wp-element-caption">composer installを実行</figcaption></figure>
</div>


<p class="has-text-align-center is-style-balloon_box">「vendor」ディレクトリと「composer.lock」ファイルが<br>作成されていれば成功</p>


<div class="wp-block-image is-style-shadow size_s u-mb-ctrl u-mb-25">
<figure class="aligncenter size-full"><img decoding="async" width="799" height="479" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/image-3.png" alt="composer installの実行結果" class="wp-image-9905" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/08/image-3.png 799w, https://kekenta-it-blog.com/wp-content/uploads/2024/08/image-3-300x180.png 300w, https://kekenta-it-blog.com/wp-content/uploads/2024/08/image-3-768x460.png 768w" sizes="(max-width: 799px) 100vw, 799px" /><figcaption class="wp-element-caption">composer installの実行結果</figcaption></figure>
</div>


<p class="is-style-balloon_box2 u-mb-ctrl u-mb-15"><strong>composer.lockファイル</strong>について詳しく知りたい方は<a href="https://kekenta-it-blog.com/composer-lock-json-diff/">以下の記事</a>をご覧ください。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/eye-catch__composer-lock-json-diff__10411-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/composer-lock-json-diff/">【PHP】composer.lockファイルとは？composer.jsonとの違いを解説</a>
						<span class="p-blogCard__excerpt">Composerを使うときにcomposer.lockファイルって出てくるけど、これってどんなファイルなの？composer.jsonとどう違うの？ 今回はこのような疑問にお答えするため、 Com&#8230;</span>					</div>
				</div>
			</div>
		</div></div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">パッケージを使用したいファイルで「autoload.php」ファイルを読み込む</div><div class="swell-block-step__body">
<p>ここまでの手順で、Composerが自動的にパッケージをプロジェクトディレクトリ内にインストールしてくれました。</p>



<p class="is-style-bg_stripe">あとはパッケージを使用したいファイル内に<code class="file_name">autoload.php</code><strong>ファイルを読み込めばOK</strong>です。</p>



<div class="swell-block-capbox cap_box is-style-onborder_ttl2"><div class="cap_box_ttl"><span>autoload.php（オートロード）とは？</span></div><div class="cap_box_content">
<p><code class="file_name">autoload.php</code>ファイルとは、<strong><span class="swl-marker mark_yellow">Composerの機能のひとつ「オートロード」を使用するためのファイル</span></strong>です。</p>



<p>通常、PHPで何らかのパッケージを使用する際には以下のように個別にファイルを読み込むコードを記述する必要があります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-lang="PHP"><code>require_once &quot;hogehoge.php&quot;;</code></pre></div>



<p>しかし、Composerの「オートロード」を使用することで、各パッケージの読み込みが自動的に行なわれるため、上記のようなコードを書く手間や書き忘れが防げます。</p>
</div></div>



<p>具体的には、パッケージを使用したいファイルの冒頭で以下のように記述をします。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-lang="PHP"><code>require_once &#39;vendor/autoload.php&#39;;</code></pre></div>



<p class="is-style-icon_info"><code class="file_name">autoload.php</code>ファイルまでのパスは、<strong>パッケージを使用したいファイルを起点とした相対パス</strong>で記述しています。</p>
</div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">使用する「パッケージのクラス」を読み込む</div><div class="swell-block-step__body">
<p class="is-style-bg_stripe">最後に、使用する「パッケージのクラス」をuseを用いて読み込みます。</p>



<p class="is-style-balloon_box">以下は<strong>Monolog</strong>を使用するときの一例<br>※実際には、実装したい機能に合わせて必要なクラスを読み込んでください。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-lang="PHP"><code>require_once &#39;vendor/autoload.php&#39;;

use \Monolog\Logger;
use \Monolog\Handler\StreamHandler;</code></pre></div>



<p>これでパッケージのクラスを利用して実装を進められるようになりました！</p>
</div></div>
</div>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>以上が<strong>開発プロジェクトでComposerを利用する流れ</strong>です！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p class="is-style-icon_info">ここまでの解説についてひとつ<strong>注意点</strong>をあげると、上記の流れは<strong><span class="swl-marker mark_orange">プロジェクトごとに行う必要があります。</span></strong><br><br><strong>コンピュータやサーバへComposerをインストールするのは一度だけでOK</strong>ですが、実際にComposerを使用してパッケージ管理を行うときは、上記の手順を踏んで<strong>プロジェクトごとにComposerを導入する必要があります</strong>。<br><br>（すでに分かっている方にとっては「何を言っているんだ……？」と、逆に混乱を招きかねないことは重々承知しているのですが、僕が初めてComposerを使用したときに戸惑った部分だったため、初心者の方向けに念のため補足させていただきました）</p>



<h2 class="wp-block-heading">Composerを利用してパッケージを追加・更新・削除する方法</h2>



<p>Composerでは、<code>composer install</code>コマンドを実行すると<code class="file_name">composer.lock</code>ファイルが作成されます。</p>



<div class="swell-block-capbox cap_box is-style-shadow" data-colset="col1"><div class="cap_box_ttl"><span><strong>composer.lockファイルとは？</strong></span></div><div class="cap_box_content">
<p><code class="file_name">composer.lock</code>ファイルとは、<strong>Composerで実際に読み込んでいるパッケージの情報（バージョンなど）が記述されているファイル</strong>です。</p>
</div></div>



<p>そのプロジェクト内で初めて<code>composer install</code>コマンドを実行すると、<code class="file_name">composer.json</code>ファイルが参照され、<code class="file_name">composer.lock</code>ファイルと<code class="dir_name">vendor</code>ディレクトリが自動作成されます。</p>



<p>しかし、<code class="file_name">composer.lock</code>ファイルがある状態で<code>composer install</code>コマンドを実行すると</p>



<p><span class="swl-marker mark_yellow"><strong>Composerは<code class="file_name">composer.json</code>ファイルは参照せず、<code class="file_name">composer.lock</code>ファイルを利用</strong></span>してパッケージのインストールを行います。</p>



<p class="is-style-bg_stripe">これはつまり、<code class="file_name">composer.json</code>ファイルを修正して<code>composer install</code>コマンドを実行しても、その<strong>修正内容がプロジェクトに反映されない</strong>ことを意味します。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/困った顔-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/困った顔-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>それなら、どうすれば<strong>パッケージの追加・更新・削除</strong>ができるの……？</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>という点を、本章でご紹介します。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/eye-catch__composer-lock-json-diff__10411-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/composer-lock-json-diff/">【PHP】composer.lockファイルとは？composer.jsonとの違いを解説</a>
						<span class="p-blogCard__excerpt">Composerを使うときにcomposer.lockファイルって出てくるけど、これってどんなファイルなの？composer.jsonとどう違うの？ 今回はこのような疑問にお答えするため、 Com&#8230;</span>					</div>
				</div>
			</div>
		</div>


<h3 class="wp-block-heading">Composerでパッケージの「追加・更新・削除」をするときはコマンドを使う</h3>



<p>一度<code>composer install</code>コマンドを実行して<code class="file_name">composer.lock</code>ファイルが作成されたあとは</p>



<p class="is-style-bg_stripe">コマンドを使用して<strong>パッケージの追加・更新・削除</strong>を行います。</p>



<h4 class="wp-block-heading">パッケージを「追加」する</h4>



<p class="is-style-bg_stripe">パッケージを追加するときは<code>require</code>コマンドを使用します。</p>



<p class="is-style-balloon_box">コマンドの形式</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>composer require パッケージ名</code></pre></div>



<p class="is-style-balloon_box2">（例）intervention/imageを追加する</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>composer require intervention/image</code></pre></div>



<p class="is-style-balloon_box2">（例）intervention/imageを追加する（バージョンを指定）</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>composer require intervention/image:3.1.2</code></pre></div>



<p class="is-style-icon_pen">上記によってパッケージ「intervention/image」が追加され、<code class="file_name">composer.json</code>ファイルも自動的に修正されます。</p>



<h4 class="wp-block-heading">パッケージを「削除」する</h4>



<p class="is-style-bg_stripe">パッケージを削除するときは<code>remove</code>コマンドを使用します。</p>



<p class="is-style-icon_info">ただし、<strong>削除対象のパッケージに依存するパッケージは削除されずに残ってしまう</strong>点に注意してください。<br>例えば、パッケージAを削除しても、Aに依存してインストールされたパッケージBは削除されません。<br><br>参考：<a href="https://qiita.com/ngyuki/items/0015ce15e8ca6c2609f1" target="_blank" rel="noreferrer noopener nofollow">Composer でパッケージの削除は composer remove が良いと思ったらそうでも無かった[Qiita]</a></p>



<p class="is-style-balloon_box">コマンドの形式</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>composer remove パッケージ名</code></pre></div>



<p class="is-style-balloon_box2">（例）intervention/imageを削除する</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>composer remove intervention/image</code></pre></div>



<h4 class="wp-block-heading">パッケージを「更新」する</h4>



<p class="is-style-bg_stripe">パッケージを削除するときは<code>update</code>コマンドを使用します。</p>



<p class="is-style-balloon_box">コマンドの形式</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>composer update パッケージ名</code></pre></div>



<p class="is-style-balloon_box2">（例）intervention/imageを更新する</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>composer update intervention/image</code></pre></div>



<div class="wp-block-group is-style-big_icon_good"><div class="wp-block-group__inner-container">
<p class="is-style-bg_stripe"><strong><span class="swl-marker mark_yellow">どのパッケージが更新されるかを事前に確認する</span></strong>には<code>--dry-run</code>オプションを利用します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>composer update --dry-run パッケージ名</code></pre></div>



<p>これにより、更新されるパッケージを事前に確認することが可能です。</p>
</div></div>


<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4374558503914683"
     crossorigin="anonymous"></script>
<!-- ディスプレイ【横長】 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-4374558503914683"
     data-ad-slot="9744298852"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">Composerを活用してPHP開発を効率化しよう！</h2>



<p>以上が<strong><span class="swl-marker mark_yellow">Composerの基本的な使用方法</span></strong>です。</p>



<p>ComposerはPHPのパッケージライブラリを自動で管理してくれる便利なツールです。</p>



<p>Composerを利用することで、PHP開発にパッケージを導入するのが簡単になり、結果的に開発効率が向上します。</p>



<p>初心者の方にとってはハードルが高い側面もあるかとは思いますが、まずはローカル環境で試すなどして、少しずつ慣れていくことをおすすめします。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>脱初心者を目指すならComposerの利用は欠かせません。<br>この記事をご参考に、ぜひ挑戦してみてください！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>当ブログではPHPやWordPress、Web制作に関する情報を発信しています。</p>



<p>ご興味のある方は、ぜひほかの記事もご覧いただけるとうれしいです！</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/eye-catch__composer-install__9757-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/composer-install/">【Windows】Composerのインストール方法｜エラー時の対処も解説</a>
						<span class="p-blogCard__excerpt">こんにちは！　ケケンタです。 この記事ではPHPでWebアプリ開発を行うなら必須の Composerのインストール方法（Windows版） を解説していきます。 PHPを始めたばかりの&#8230;</span>					</div>
				</div>
			</div>
		</div>

<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/eye-catch__composer-lock-json-diff__10411-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/composer-lock-json-diff/">【PHP】composer.lockファイルとは？composer.jsonとの違いを解説</a>
						<span class="p-blogCard__excerpt">Composerを使うときにcomposer.lockファイルって出てくるけど、これってどんなファイルなの？composer.jsonとどう違うの？ 今回はこのような疑問にお答えするため、 Com&#8230;</span>					</div>
				</div>
			</div>
		</div>]]></content:encoded>
					
					<wfw:commentRss>https://kekenta-it-blog.com/composer-how-to/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Windows】Composerのインストール方法｜エラー時の対処も解説</title>
		<link>https://kekenta-it-blog.com/composer-install/</link>
					<comments>https://kekenta-it-blog.com/composer-install/#respond</comments>
		
		<dc:creator><![CDATA[ケケンタ]]></dc:creator>
		<pubDate>Mon, 12 Aug 2024 12:26:19 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Webアプリ]]></category>
		<category><![CDATA[Composer]]></category>
		<category><![CDATA[インストール]]></category>
		<category><![CDATA[パッケージ]]></category>
		<guid isPermaLink="false">https://kekenta-it-blog.com/?p=9757</guid>

					<description><![CDATA[<p><img src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/eye-catch__composer-install__9757-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>この記事ではPHPでWebアプリ開発を行うなら必須の Composerのインストール方法（Windows版） を解説していきます。 PHPを始めたばかりの方にとっては難しく感じる内容もあるかとは思いますが、Compose [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/eye-catch__composer-install__9757-1024x576.jpg" class="webfeedsFeaturedVisual" /></p><div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>こんにちは！　ケケンタです。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>この記事ではPHPでWebアプリ開発を行うなら必須の</p>



<p class="has-text-align-center is-style-big_kakko_box"><strong>Composerのインストール方法（Windows版）</strong></p>



<p>を解説していきます。</p>



<p>PHPを始めたばかりの方にとっては難しく感じる内容もあるかとは思いますが、<strong>ComposerはPHPでWebアプリを開発していくならいずれ必ず使うことになる</strong>ため、この記事を参考にぜひインストールから挑戦してみてください！</p>



<div class="wp-block-group is-style-bg_stripe"><div class="wp-block-group__inner-container">
<p>Composerインストール後、実際に<strong>パッケージ管理を行うための基本的な使用方法</strong>は以下の記事をご覧ください。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/eye-catch__composer-how-to__9871-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/composer-how-to/">【初心者向け】Composerの使い方を丁寧に解説！【PHP】</a>
						<span class="p-blogCard__excerpt">Composerってよく見かけるけど、イマイチ使い方がわからないな…… 今回はこうしたお悩みをお持ちの方へ向けて PHPのWebアプリ開発にComposerを導入してパッケージライブ&#8230;</span>					</div>
				</div>
			</div>
		</div></div></div>


<div class="swell-block-postLink">			<a href="https://kekenta-it-blog.com/alone-php-study/" class="c-blogLink -internal" data-style="text">
				<!-- <i class="c-blogLink__icon icon-link" role="presentation"></i> -->
				<span class="c-blogLink__icon">
					<svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-link __svg" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M21.2 30.2c-.5 0-1-.2-1.4-.6l-.7-.7c-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l7.1-7.1c2.3-2.3 5.3-3.5 8.5-3.5s6.2 1.2 8.5 3.5c4.7 4.7 4.7 12.3 0 17l-3.5 3.5c-.8.8-2 .8-2.8 0-.8-.8-.8-2 0-2.8l3.5-3.5c3.1-3.1 3.1-8.2 0-11.3-1.5-1.5-3.5-2.3-5.7-2.3-2.1 0-4.2.8-5.7 2.3l-7.1 7.1c-1.5 1.5-2.3 3.5-2.3 5.7s.8 4.2 2.3 5.7l.7.7c.8.8.8 2 0 2.8-.4.3-.9.5-1.4.5z" /><path d="M13.4 46.6c-3.1 0-6.1-1.2-8.5-3.5-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l3.5-3.5c.8-.8 2-.8 2.8 0 .8.8.8 2 0 2.8l-3.5 3.5c-1.5 1.5-2.3 3.5-2.3 5.7 0 2.1.8 4.2 2.3 5.7 3.1 3.1 8.2 3.1 11.3 0l7.1-7.1c1.5-1.5 2.3-3.5 2.3-5.7 0-2.1-.8-4.2-2.3-5.7l-.7-.7c-.8-.8-.8-2 0-2.8.8-.8 2-.8 2.8 0l.7.7c2.3 2.3 3.5 5.3 3.5 8.5s-1.2 6.2-3.5 8.5l-7.1 7.1c-2.3 2.3-5.3 3.5-8.4 3.5z" /></svg>				</span>
				<span class="c-blogLink__text">PHPはこうして習得した！約１年間の勉強内容【プログラミング独学】</span>
			</a>
		</div>

<div class="swell-block-postLink">			<a href="https://kekenta-it-blog.com/php-deploy-xserver-for-zip/" class="c-blogLink -internal" data-style="text">
				<!-- <i class="c-blogLink__icon icon-link" role="presentation"></i> -->
				<span class="c-blogLink__icon">
					<svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-link __svg" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M21.2 30.2c-.5 0-1-.2-1.4-.6l-.7-.7c-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l7.1-7.1c2.3-2.3 5.3-3.5 8.5-3.5s6.2 1.2 8.5 3.5c4.7 4.7 4.7 12.3 0 17l-3.5 3.5c-.8.8-2 .8-2.8 0-.8-.8-.8-2 0-2.8l3.5-3.5c3.1-3.1 3.1-8.2 0-11.3-1.5-1.5-3.5-2.3-5.7-2.3-2.1 0-4.2.8-5.7 2.3l-7.1 7.1c-1.5 1.5-2.3 3.5-2.3 5.7s.8 4.2 2.3 5.7l.7.7c.8.8.8 2 0 2.8-.4.3-.9.5-1.4.5z" /><path d="M13.4 46.6c-3.1 0-6.1-1.2-8.5-3.5-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l3.5-3.5c.8-.8 2-.8 2.8 0 .8.8.8 2 0 2.8l-3.5 3.5c-1.5 1.5-2.3 3.5-2.3 5.7 0 2.1.8 4.2 2.3 5.7 3.1 3.1 8.2 3.1 11.3 0l7.1-7.1c1.5-1.5 2.3-3.5 2.3-5.7 0-2.1-.8-4.2-2.3-5.7l-.7-.7c-.8-.8-.8-2 0-2.8.8-.8 2-.8 2.8 0l.7.7c2.3 2.3 3.5 5.3 3.5 8.5s-1.2 6.2-3.5 8.5l-7.1 7.1c-2.3 2.3-5.3 3.5-8.4 3.5z" /></svg>				</span>
				<span class="c-blogLink__text">【PHP】エックスサーバーへデプロイする方法【初心者でも簡単！】</span>
			</a>
		</div>

<div class="swell-block-postLink">			<a href="https://kekenta-it-blog.com/school-php-and-wp/" class="c-blogLink -internal" data-style="text">
				<!-- <i class="c-blogLink__icon icon-link" role="presentation"></i> -->
				<span class="c-blogLink__icon">
					<svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-link __svg" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M21.2 30.2c-.5 0-1-.2-1.4-.6l-.7-.7c-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l7.1-7.1c2.3-2.3 5.3-3.5 8.5-3.5s6.2 1.2 8.5 3.5c4.7 4.7 4.7 12.3 0 17l-3.5 3.5c-.8.8-2 .8-2.8 0-.8-.8-.8-2 0-2.8l3.5-3.5c3.1-3.1 3.1-8.2 0-11.3-1.5-1.5-3.5-2.3-5.7-2.3-2.1 0-4.2.8-5.7 2.3l-7.1 7.1c-1.5 1.5-2.3 3.5-2.3 5.7s.8 4.2 2.3 5.7l.7.7c.8.8.8 2 0 2.8-.4.3-.9.5-1.4.5z" /><path d="M13.4 46.6c-3.1 0-6.1-1.2-8.5-3.5-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l3.5-3.5c.8-.8 2-.8 2.8 0 .8.8.8 2 0 2.8l-3.5 3.5c-1.5 1.5-2.3 3.5-2.3 5.7 0 2.1.8 4.2 2.3 5.7 3.1 3.1 8.2 3.1 11.3 0l7.1-7.1c1.5-1.5 2.3-3.5 2.3-5.7 0-2.1-.8-4.2-2.3-5.7l-.7-.7c-.8-.8-.8-2 0-2.8.8-.8 2-.8 2.8 0l.7.7c2.3 2.3 3.5 5.3 3.5 8.5s-1.2 6.2-3.5 8.5l-7.1 7.1c-2.3 2.3-5.3 3.5-8.4 3.5z" /></svg>				</span>
				<span class="c-blogLink__text">PHPやWordPressを学ぶのにおすすめのプログラミングスクール【７選】</span>
			</a>
		</div>


<h2 class="wp-block-heading">Composerとは？</h2>



<p class="is-style-bg_stripe">Composerとは、<strong>PHPのパッケージライブラリを管理するためのツール</strong>です。</p>



<p><strong>パッケージライブラリ</strong>は、簡単に言うと<strong>便利な機能（関数やクラスなど）がすでに実装されている機能のまとまり</strong>のことです。</p>



<p>例えば、<strong>Goutte</strong>というパッケージライブラリを使用すると、スクレイピング（Web上から情報を自動収集する技術）を比較的簡単に実装することが可能です。</p>



<h2 class="wp-block-heading">Composerを使用するメリット</h2>



<p>前述のように、ComposerはPHPのパッケージライブラリを管理するためのツールです。</p>



<p><strong>Composerを用いることで得られるメリット</strong>はいくつかありますが、その中の<strong>３つ</strong>をご紹介します。</p>



<div class="swell-block-capbox cap_box is-style-shadow" data-colset="col1"><div class="cap_box_ttl"><span><span data-icon="LsThumbUp" data-id="0" style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNNCAxOGg0YzEuMSAwIDIgLjkgMiAydjIwYzAgMS4xLS45IDItMiAySDRjLTEuMSAwLTItLjktMi0yVjIwYzAtMS4xLjktMiAyLTJ6TTQxIDE0SDI3bC43LTcuMWMuMi0xLjgtLjYtMy41LTItNC42LS45LS43LTIuMi0uNS0yLjkuNUwxNS4zIDE0Yy0uOSAxLjMtMS4zIDIuOS0xLjMgNC40VjM4YzAgMi4yIDEuOCA0IDQgNGgyMC44YzEuOSAwIDMuNS0xLjMgMy45LTMuMWwzLTEzLjZjLjItLjkuMy0xLjcuMy0yLjZWMTljMC0yLjgtMi4yLTUtNS01eiI+PC9wYXRoPjwvc3ZnPg==)" aria-hidden="true" class="swl-inline-icon"> </span><strong> Composerのメリット</strong></span></div><div class="cap_box_content">
<ul class="wp-block-list -list-under-dashed is-style-good_list">
<li>パッケージ管理が楽になる</li>



<li><code class="file_name">composer.lock</code>ファイルをメンバー間で共有することで簡単に同じパッケージ管理ができる</li>



<li>開発環境ごとにパッケージライブラリをインストールできる</li>
</ul>
</div></div>



<h3 class="wp-block-heading">①パッケージ管理が楽になる</h3>



<p>PHPのパッケージを利用することで、Webアプリ開発が効率化できます。</p>



<p>ですがその一方、パッケージを利用するためには</p>



<p>「Aというパッケージを使用するにはBというパッケージもインストールしなくてはいけない」</p>



<p>といった、いわゆる<strong>「依存関係」を正確に把握</strong>する必要があります。</p>



<p>これを人の手だけで管理しようとすると非常に大変です。</p>



<p class="is-style-bg_stripe">Composerはこの<strong>依存関係の管理</strong>を行ってくれるツールのため、依存関係を意識しなくてもコマンドひとつで簡単にパッケージをインストールすることができます。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/11/kekenta-icon-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/11/kekenta-icon-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>これがComposerを使用する最たるメリットです！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<h3 class="wp-block-heading">②composer.lockファイルをメンバー間で共有することで簡単に同じパッケージ管理ができる</h3>



<p class="is-style-bg_stripe"><code class="file_name">composer.lock</code>ファイルはどのバージョンのライブラリをインストールしたかといった情報が記録されたファイルです。</p>



<p>このファイルを開発メンバー間で共有することにより、全員が同じパッケージを簡単に利用することが可能です。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/eye-catch__composer-lock-json-diff__10411-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/composer-lock-json-diff/">【PHP】composer.lockファイルとは？composer.jsonとの違いを解説</a>
						<span class="p-blogCard__excerpt">Composerを使うときにcomposer.lockファイルって出てくるけど、これってどんなファイルなの？composer.jsonとどう違うの？ 今回はこのような疑問にお答えするため、 Com&#8230;</span>					</div>
				</div>
			</div>
		</div>


<h3 class="wp-block-heading">③開発環境ごとにパッケージライブラリをインストールできる</h3>



<p>Webアプリの開発を進めていると、開発環境では必要なパッケージが、本番環境では不要という場面に遭遇することがあります。</p>



<p>Composerでは、「開発環境でしか使用しないパッケージを指定する」ということが可能なため、<strong><span class="swl-marker mark_yellow">開発環境と本番環境のすみわけが簡単</span></strong>になります。</p>


<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4374558503914683"
     crossorigin="anonymous"></script>
<!-- ディスプレイ【横長】 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-4374558503914683"
     data-ad-slot="9744298852"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading" id="how-to-install-anc">Composerのインストール方法</h2>



<p class="is-style-icon_info">前提として、Composerを利用するためにはあらかじめお使いのパソコンやサーバーにPHPをインストールしておく必要があります。</p>



<p class="is-style-bg_stripe">Composer自体のインストールは決して難しくなく、基本的にはインストーラの画面にそって操作していくことですぐに完了できます。</p>



<div class="swell-block-step is-style-default" data-num-style="circle">
<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">公式サイトでインストーラをダウンロードする</div><div class="swell-block-step__body">
<p class="is-style-icon_pen">まずは公式サイトから<strong>Composerのインストーラ</strong>をダウンロードします。</p>



<p>以下のリンク先へアクセスし、「Composer-Setup.exe」をクリックします。</p>



<p class="has-text-align-center is-style-balloon_box2"><a href="https://getcomposer.org/doc/00-intro.md#installation-windows" target="_blank" rel="noreferrer noopener">Composer公式サイト（Windows用インストーラページ）</a></p>


<div class="wp-block-image size_s is-style-shadow">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="290" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-install-win01-1024x290.jpg" alt="Composerインストーラーのダウンロード" class="wp-image-9809" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-install-win01-1024x290.jpg 1024w, https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-install-win01-300x85.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-install-win01-768x218.jpg 768w, https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-install-win01.jpg 1030w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Composerインストーラーのダウンロード</figcaption></figure>
</div></div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">インストーラを起動する</div><div class="swell-block-step__body">
<p class="is-style-icon_pen">インストーラをダウンロードしたら、インストーラ（Composer-Setup.exe）をダブルクリックして起動します。</p>
</div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">インストーラの画面にしたがって操作を進める</div><div class="swell-block-step__body">
<p class="is-style-icon_pen">以下より掲載する画像を参考に、インストール操作をお進めください。</p>


<div class="wp-block-image is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="352" height="256" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-install-win02.jpg" alt="Composerインストール操作①" class="wp-image-9810" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-install-win02.jpg 352w, https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-install-win02-300x218.jpg 300w" sizes="(max-width: 352px) 100vw, 352px" /><figcaption class="wp-element-caption">Composerインストール操作①</figcaption></figure>
</div>

<div class="wp-block-image is-style-shadow size_s">
<figure class="aligncenter size-full"><img decoding="async" width="640" height="475" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-install-win03.jpg" alt="Composerインストール操作②" class="wp-image-9811" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-install-win03.jpg 640w, https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-install-win03-300x223.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /><figcaption class="wp-element-caption">Composerインストール操作②</figcaption></figure>
</div>


<p class="has-text-align-center is-style-balloon_box2">Composerとひもづけるphp.exeファイルを指定します。<br>※以下は<strong>XAMPP環境のphp.exeを使用する場合の表示</strong>です。</p>


<div class="wp-block-image is-style-shadow size_s">
<figure class="aligncenter size-full"><img decoding="async" width="640" height="475" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-install-win04.jpg" alt="Composerインストール操作③" class="wp-image-9812" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-install-win04.jpg 640w, https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-install-win04-300x223.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /><figcaption class="wp-element-caption">Composerインストール操作③</figcaption></figure>
</div>


<p class="is-style-icon_info">「Next」を押したときに「Composer Security Warning」という画面が表示された場合、<strong>php.iniを修正する必要</strong>があります。<br><strong>詳しい修正手順</strong>は<a href="#err-anc">こちらの章</a>をご覧ください。</p>


<div class="wp-block-image is-style-shadow size_s">
<figure class="aligncenter size-full"><img decoding="async" width="640" height="475" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-install-win05.jpg" alt="Composerインストール操作④" class="wp-image-9805" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-install-win05.jpg 640w, https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-install-win05-300x223.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /><figcaption class="wp-element-caption">Composerインストール操作④</figcaption></figure>
</div>

<div class="wp-block-image is-style-shadow size_s">
<figure class="aligncenter size-full"><img decoding="async" width="640" height="475" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-install-win06.jpg" alt="Composerインストール操作⑤" class="wp-image-9806" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-install-win06.jpg 640w, https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-install-win06-300x223.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /><figcaption class="wp-element-caption">Composerインストール操作⑤</figcaption></figure>
</div>

<div class="wp-block-image is-style-shadow size_s">
<figure class="aligncenter size-full"><img decoding="async" width="640" height="475" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-install-win07.jpg" alt="Composerインストール操作⑥" class="wp-image-9807" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-install-win07.jpg 640w, https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-install-win07-300x223.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /><figcaption class="wp-element-caption">Composerインストール操作⑥</figcaption></figure>
</div>


<p class="has-text-align-center is-style-balloon_box2"><strong>公式ドキュメント</strong>を見たい場合は<br>「View online documentation」にチェックを入れます。</p>


<div class="wp-block-image is-style-shadow size_s">
<figure class="aligncenter size-full"><img decoding="async" width="640" height="475" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-install-win08.jpg" alt="Composerインストール操作⑦" class="wp-image-9808" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-install-win08.jpg 640w, https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-install-win08-300x223.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /><figcaption class="wp-element-caption">Composerインストール操作⑦</figcaption></figure>
</div>

<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>以上でインストーラによる<strong>インストール作業は完了</strong>です！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div></div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">インストールが成功しているか確認する</div><div class="swell-block-step__body">
<p><strong>Windowsキー</strong>を押してから検索窓に「cmd」と入力して、Enterキーを押します。</p>



<p>すると、<strong>コマンドプロンプト</strong>が起動します。</p>


<div class="wp-block-image is-style-shadow size_s">
<figure class="aligncenter size-full"><img decoding="async" width="718" height="418" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-install-win09.jpg" alt="コマンドプロンプトの起動" class="wp-image-9818" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-install-win09.jpg 718w, https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-install-win09-300x175.jpg 300w" sizes="(max-width: 718px) 100vw, 718px" /><figcaption class="wp-element-caption">コマンドプロンプトの起動</figcaption></figure>
</div>


<p>続いて<code>composer</code>と入力して、Enterキーを押します。</p>



<p>数秒ほど待って、以下のような表示が出ればComposerは無事にインストールできています。</p>


<div class="wp-block-image size_s is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="718" height="419" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-install-win10.jpg" alt="Composerインストール成功確認画面" class="wp-image-9819" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-install-win10.jpg 718w, https://kekenta-it-blog.com/wp-content/uploads/2024/08/composer-install-win10-300x175.jpg 300w" sizes="(max-width: 718px) 100vw, 718px" /><figcaption class="wp-element-caption">Composerインストール成功確認画面</figcaption></figure>
</div></div></div>
</div>



<h2 class="wp-block-heading" id="err-anc">【補足】「Composer Security Warning」という画面が表示されてインストールできない場合</h2>



<p>PHPでopenssl (SSLライブラリ)を利用する拡張が有効になっていないと、「Composer Security Warning」という画面が表示されてインストールを進めることができません。</p>



<p class="is-style-bg_stripe">そのようなときは、<strong>以下の手順</strong>にしたがってphp.iniを修正し、改めてインストーラを起動しましょう。</p>



<div class="swell-block-step" data-num-style="circle">
<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">一度インストーラを閉じる</div><div class="swell-block-step__body">

</div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">php.iniをテキストエディタで開く</div><div class="swell-block-step__body">
<p class="is-style-icon_pen">XAMPP環境の場合、<strong>php.iniは以下のディレクトリ内</strong>にあります。</p>



<p class="is-style-emboss_box">C:\xampp7\php</p>
</div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">php.iniを修正する</div><div class="swell-block-step__body">
<p class="is-style-icon_pen"><strong>extension=php_openssl.dll</strong>のコメントを外して、<strong>php_openssl.dll が保存されているパスを指定</strong>します。</p>



<p class="is-style-balloon_box2">以下は<strong>XAMPP環境</strong>の場合の修正内容です。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-lang="PHP"><code>[変更前]
;extension=php_openssl.dll

[変更後]
extension=ext/php_openssl.dll</code></pre></div>
</div></div>
</div>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>上記の修正が完了したら、再度インストーラを起動して<a href="#how-to-install-anc">インストール操作</a>を進めてみましょう！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4374558503914683"
     crossorigin="anonymous"></script>
<!-- ディスプレイ【横長】 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-4374558503914683"
     data-ad-slot="9744298852"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">Composerを導入してパッケージを活用しよう！</h2>



<p>以上がComposerをお使いのパソコンやサーバへインストールする方法です。</p>



<p>実際にComposerを使用する場合は、<code class="file_name">compose.json</code>ファイルを用意したり、コマンドプロンプトでコマンドを実行したりといくつか行うべきことがあります。</p>



<p>しかし、最初はハードルを感じても、実際にやってみると意外と簡単に導入できることがお分かりいただけるかと思います。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>この記事がComposerを使い始める第一歩の助けとなったなら幸いです！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>当ブログではPHPやWordPress、Web制作について情報を発信しています。</p>



<p>ご興味のある方はぜひほかの記事もご覧いただけるとうれしいです。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/eye-catch__composer-how-to__9871-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/composer-how-to/">【初心者向け】Composerの使い方を丁寧に解説！【PHP】</a>
						<span class="p-blogCard__excerpt">Composerってよく見かけるけど、イマイチ使い方がわからないな…… 今回はこうしたお悩みをお持ちの方へ向けて PHPのWebアプリ開発にComposerを導入してパッケージライブ&#8230;</span>					</div>
				</div>
			</div>
		</div>

<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/eye-catch__composer-lock-json-diff__10411-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/composer-lock-json-diff/">【PHP】composer.lockファイルとは？composer.jsonとの違いを解説</a>
						<span class="p-blogCard__excerpt">Composerを使うときにcomposer.lockファイルって出てくるけど、これってどんなファイルなの？composer.jsonとどう違うの？ 今回はこのような疑問にお答えするため、 Com&#8230;</span>					</div>
				</div>
			</div>
		</div>]]></content:encoded>
					
					<wfw:commentRss>https://kekenta-it-blog.com/composer-install/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
