[Typo3-dev] Extension Developers Guide TOC
Jan-Erik Revsbech
jer at moccompany.com
Fri May 14 13:26:03 CEST 2004
I think this document would have helped me a lot, and probably still would
server me well as a reference. It would be a major help to have it,
especially for extension newies. I think one thing should be added to the
Programming Extensions chapter:
- Caching
* Difference of using USER and USER_INT, how to make you plugin cachable
(and hence indexable with indexed_search) even though it displays dynamic
content.
I also think that a very good explanation of the stdWrap and typolink
should be explained, and the use of piVars should be emphasized in the
handling GP vars. This is a point that took me a lot of time to figure out
how to use.
Even though my time is limited, I could contribute with something to this
document, for instance the section on caching.
/Jan-Erik
"Leendert Brouwer [Netcreators]" <leendert at netcreators.nl> wrote in message
news:mailman.1.1084532104.2615.typo3-dev at lists.netfielders.de...
> Hey list!
>
> As a follow-up of the "extension reviewing" post where a discussion was
> digged up about the documentation for extension writing, I've written a
> suggestive Table of Contents for this user guide, to get things going.
It's
> probably very incomplete, and I hope this post will have the desired
> snowball effect as to what is missing or what should be done differently
> (I've only touched Typo3 since a month, after all). After we have decided
on
> the correct TOC, I believe it will be time to ask who will take
> responsibility for what part. Also, it would be great if we can form a
> Quality Assurance team for this guide, as to provide developers with
> information that is as correct as possible. There's nothing more annoying
> than incorrect technical information.Oh btw if this appears to be too
> unreadable, I can throw it in an OpenOffice document instead.
>
> Lines underlined with '---- ' are chapters.
> Lines prefixed with a - are sections
> Lines prefixed with a * are abstracts for the sections
>
> Typo3 Extension Developers Guide
>
> Preface
> --------
> * Some things about what is in this document, and how it should be used
>
> Introduction
> ------------
> - What is an extension?
> * What an extension is exactly, and why they allow for so much
> flexibility, and when you start making your own extensions
> - Extension types
> * Explains the difference between user extensions and core extensions,
and
> when you actually need either of those
> - Required knowledge
> * Information on the knowledge about concepts that matter when you write
> extensions. E.g. PHP, databases and database normalization, the concept
of
> Typoscript, OOP etc. (possibly accompanied with links to online
documents,
> articles and literature suggestions)
>
>
> The Typo3 architecture
> -----------------------
> * Explains the overall architecture of Typo3, possibly accompanied by
> diagrams. The "why" of things is also very important here.
> Pre/post-processing issues, the role (and boundaries!) of Typoscript, the
> philosophy behind the architecture, the TCA etc. (Kasper will be the
best
> judge of the structure of this section)
>
> Extension Maintenance
> -----------------------
> - Extension scope
> * Explains the difference between global and local scope for extensions,
> and when to choose which (also the things to take in account when choosing
> either of them)
> - Upgrading
> * Practices that are involved with keeping your server clean and safe
for
> upgrading (i.e. avoiding breaking things by modifying an existing
> extension and then upgrading it), some things about dependencies, how to
> manually install extensions etc.
> - PHP Compatibility
> * Things to keep in mind when installing extensions on the server (like
> the register_globals thing, explaining the distribution's .htaccess
file
> that sets PHP flags, PHP version compatibility, etc.)
>
> Programming Extensions
> -------------------------
> (note: probably better to not rely on the kickstarter here, it's more
> educative to learn from scratch if you really want to learn about
> extension writing, and that's why someone reads this guide after all)
> - One base for all
> * Explains why and how you should inherit from tslib_pibase, and how
your
> extension will be 'hooked' at runtime.
> - Things you must use
> * Explains which parts of the Typo3 API are mandatory to use in order to
> work correctly with Typo3 or "system - intense" extensions of Typo3
(like
> RealURL).
> - Things you can use
> * Explains which parts of the Typo3 API are there for you to use, but
are
> not mandatory (like the template engine)
> - Types of user extensions
> * A description of the different kinds of user extensions (frontend
> plugins, modules, etc.) and when they should be used (case examples of
> when they should be used would be helpful)
> - Required extension files
> * For each type of user extension, it should be clear what files need to
> be present in order to make the extension work, and what exactly should
> be in them (while specified whether something is mandatory or not, to
> avoid bloat and confusion!).
> - Extending an extension
> * Actions that are required to extend an extension, and the implications
> this has for future compatibility. A case study would be useful here.
> - System extensions
> * Explains what is different about system extensions, when they
can/should
> be written and how they differ from user extensions. A case study would
> be useful here.
>
> Common practices
> -------------------
> - Handling user data
> * Examples along with descriptions on how to handle incoming GET/POST
data
> - Dealing with Typoscript
> * Explains when to use Typoscript for your extensions and how to read it
> inside the extensions
> - Handling file uploads
> * Examples of dealing with file uploads in extensions
> - Using sessions
> * Examples of how to use PHP sessions in your extensions (even though
> that's "vanilla PHP", I can imagine confusion about this subject)
> - Using databases
> * Examples of how to query a database and the best ways to deal with the
> data (even though that's "vanilla PHP")
> - Handling user authentication
> * Examples on what exactly should happen for e.g. logging a user into
> Typo3
>
> Structural practices
> -------------------
> - Coding conventions
> * All naming schemes, style rules, database naming rules etc. to conform
> to
> - Handling content
> * Examples of how to use the markers, TemplaVoila, Smarty etc.
> - Writing larger extensions
> * Suggestions on how to structure your code when writing larger
extensions
> (explanation of Front Controller style structures)
> - Porting third party applications to Typo3
> * Things to keep in mind when porting third party applications to Typo3
> such as database migration, user integration, etc.
>
>
More information about the TYPO3-dev
mailing list