Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
95 changes: 81 additions & 14 deletions chapters/tutorial.xml
Original file line number Diff line number Diff line change
Expand Up @@ -305,15 +305,15 @@ You are using Firefox.
<![CDATA[
<?php
if (str_contains($_SERVER['HTTP_USER_AGENT'], 'Firefox')) {
?>
<h3>str_contains() returned true</h3>
<p>You are using Firefox</p>
<?php
?>
<h3>str_contains() returned true</h3>
<p>You are using Firefox</p>
<?php
} else {
?>
<h3>str_contains() returned false</h3>
<p>You are not using Firefox</p>
<?php
?>
<h3>str_contains() returned false</h3>
<p>You are not using Firefox</p>
<?php
}
?>
]]>
Expand Down Expand Up @@ -419,16 +419,83 @@ Hi Joe. You are 22 years old.

<section xml:id="tutorial.whatsnext">
<info><title>What's next?</title></info>
<simpara>
With your new knowledge you should be able to understand most of the manual.
</simpara>
<para>
With your new knowledge you should be able to understand most of
the manual and also the various example scripts available in the
example archives.
In particular you may want to explore the following features:
<simplelist>
<member>Reading and writing files with the <link linkend="book.filesystem">filesystem functions</link></member>
<member><link linkend="features.file-upload">Handling file uploads</link></member>
<member>Fetching remote pages and files with <link linkend="book.curl">Curl</link></member>
<member>
Storing and analyzing data in a database with <link linkend="book.pdo">PDO</link>
(<link linkend="ref.pdo-sqlite">SQLite</link> can be used without running a database server)
</member>
<member>Persisting data across requests with <link linkend="book.session">Sessions</link></member>
</simplelist>
</para>
<simpara>
There's a trove of libraries and <link xlink:href="&url.packagist;/search/?tags=framework">frameworks</link>
for every occasion on the <link xlink:href="&url.packagist;">Packagist repository</link>, all installable via
the <link linkend="install.composer.intro">Composer package manager</link>.
</simpara>
<simpara>
For community help and advice, check out the <link xlink:href="&url.php.support;">Help page</link>.
</simpara>
<simpara>
For a variety of podcasts, presentations and other videos, check out the
<link xlink:href="&url.phpctv;">community PeerTube</link>.
</simpara>
Comment on lines +446 to +449
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seeing this one being the source of the build failure: This might require some discussion on Internals whether it's acceptable to specifically call out this instance (over any other or YouTube).

If you drop this paragraph, I'm happy to merge.

Copy link
Copy Markdown
Contributor Author

@AllenJB AllenJB Apr 19, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would like to keep this if possible, I think it's a useful resource.

With regards to YouTube, I don't know of any way to reliably link to a variety of up-to-date PHP community content in the same way phpc.tv allows here.

Based on socials (phpc.tv's and Anna Filina's mastodon posts) and information on phpc.tv itself, anyone can submit their existing channel content to be sync'd but accounts are moderated. Subsequently I believe the likelihood of phpc.tv showing users undesirable content is low.

Mailing list discussion: https://news-web.php.net/php.internals/130668

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would like to keep this if possible, I think it's a useful resource.

Depending on the results of the discussion, we can add it back it later and get the other improvements shipped already?

<simpara>
Other community resources that will help you include "awesome lists" (curated directories of links) and "developer
roadmaps" (lists of related topics)
</simpara>
<para>
To view various slide presentations that show more of what PHP can do,
see the PHP Conference Material Site:
<link xlink:href="&url.php.talks;">&url.php.talks;</link>
When you're stuck with no idea where to start, try breaking down your project or problem into smaller parts,
allowing you to more easily see what you already know how to do and what you need to learn. The list can be as deep
/ detailed as you need. For example, building a blog might be broken down into the following parts:
<itemizedlist>
<listitem>
<simpara>Listing and viewing pages</simpara>
<itemizedlist>
<listitem>
<simpara>Reading records (pages) from a database</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>Creating pages</simpara>
<itemizedlist>
<listitem>
<simpara>Handle form submission</simpara>
</listitem>
<listitem>
<simpara>Writing records (pages) to a database</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>Admin login</simpara>
<itemizedlist>
<listitem>
<simpara>Reading records (users) from a database</simpara>
</listitem>
<listitem>
<simpara>Handling passwords</simpara>
</listitem>
<listitem>
<simpara>Persisting data (user login) across requests / pages (sessions)</simpara>
</listitem>
</itemizedlist>
</listitem>
</itemizedlist>
</para>
<simpara>
If there's nothing particular you want to build, you can try searching for coding exercises such as katas,
challenges and "code golf". Even when not specifically aimed at PHP, most should be completeable and will likely
challenge your knowledge and thinking.
</simpara>
</section>
</chapter>

Expand Down
Loading