Skip to content

Commit

Permalink
Item14237: Started Foswiki v3 Essentials Category
Browse files Browse the repository at this point in the history
Few more docs changes.
  • Loading branch information
vrurg committed Oct 3, 2017
1 parent 40ca80f commit 16c1232
Show file tree
Hide file tree
Showing 8 changed files with 70 additions and 4 deletions.
2 changes: 1 addition & 1 deletion core/data/System/ClassMethod.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,5 @@ my $mobile = Telecoms->new();
</verbatim>

---
*Related Topics:* StaticMethod, ObjectMethod
*Related Topics:* StaticMethod, ObjectMethod, ObjectAttribute
<!-- %JQREQUIRE{"chili"}% -->
2 changes: 2 additions & 0 deletions core/data/System/DeveloperDocumentationCategory.txt
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ Topics for normal users that want to develop Foswiki applications.
Topics for programmers that which to design new skins and develop new extensions for Foswiki.

---+++ Reference
$ [[FoswikiV3Essentials]] : Topics related to main development concepts of Foswiki v3.
$ [[ReferenceManual]] : Documentation for webmasters, system administrators, project managers, team leaders, and all other users of Foswiki
$ [[DevelopingPlugins]] : An introduction to developing Plugins
$ [[Contribs]] : A short introduction to Contribs. Contribs are Extensions to Foswiki that are not plugins
Expand All @@ -64,6 +65,7 @@ Topics for programmers that which to design new skins and develop new extensions
$ [[JavascriptFiles]] : Foswiki Javascript support comprises a number of base Javascript files, attached to this topic, that provide support for features in the basic screens, and are used by most skins.
$ [[SkinTemplates]] : Skin templates are used when composing the output from all actions, such as view, edit, and preview. This allows you to change the look and feel of all pages by editing just a few template files. This topic describes the special template directives. Both for Skin developers and for advanced wiki application development.
$ [[MetaData]] : Additional data, Foswiki-generated or from [[DataForms][forms]], may be embedded in the topic text using =META:= macros
$ [[ObjectAttribute]] : An ObjectAttribute is a named data stored on an object
$ [[ClassMethod]] : A ClassMethod is a method that must be called relative to the containing class object
$ [[ObjectMethod]] : An ObjectMethod is a method that must be called relative to a previous constructed object of the class type
$ [[StaticMethod]] : A StaticMethod is a method in a package that can be called without reference to an object of the package type
Expand Down
44 changes: 44 additions & 0 deletions core/data/System/FoswikiV3Essentials.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
%META:TOPICINFO{author="ProjectContributor" date="1506995134" format="1.1" version="1"}%
%META:TOPICPARENT{name="DeveloperDocumentationCategory"}%
---+ Foswiki v3 Essentials

This category is dedicated to development under Foswiki v3 core.

Basically, what makes v3 different from all previous versions are:

$ Full OO : New version is totally redesigned. Where all previous versions
were basically procedural code using some OO elements – v3 is OO from the
first call of =%PERLDOC{"Foswiki::App" method="run"}%= method.
$ Application centric : Everything in the new core is summoned and
manipulated by a single application object.
$ PSGI support : Yes, the new code is PSGI compliant. Basically, it is the
main and only mode of operation now. Any other environments like CGI, FastCGI,
etc. are now supported through corresponding CPAN:Plack::Handler adapters.
$ PSGI testing framework : It comes as an extension to the legacy testing
code and wraps around CPAN:Plack::Test.
$ OO-redesigned test framework : It's all said.
$ Manageable callbacks : Flexible and powerful, the new callback protocol
unifies the interface and provides more control.
$ Extensions : They're here to replace some day the old plugins framework.
Their power is probably limitless within Perl's limitations. Yet many tasks
are now easier to accomplish.
$ Perl-based Config specs : The legacy specs bundled with special language
are now just an additional data type of the new powerful specs format. There
is no more need to learn a new obscure language to declare your configuration
keys!
$ Structured exceptions : Together with switching to CPAN:Try::Tiny and
CPAN:Throwable exceptions are now forming an inheritance tree allowing
better granularity of error processing.
$ Macros as objects : A macro could now be defined as a class.
$ Feature sets : Foswiki core and any component can now define a set of
supported features as well as version range which defines a feature's life
span. Any component (extensions mostly) can now request what features it
needs to work correctly. This provides way more flexible control over
code compatibility matters than just version range tests.

There are some under the hood changes in behaviour of some components like
=%PERLDOC{"Foswiki::Request"}%= initialization procedures; or alike.


$ [[SpecFileFormat]] : Config Specs v2

17 changes: 17 additions & 0 deletions core/data/System/ObjectAttribute.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
%META:TOPICINFO{author="BaseUserMapping_333" date="1506994530" format="1.1" version="1"}%
%META:TOPICPARENT{name="DeveloperDocumentationCategory"}%
An object attribute is a named data store on object. For example:

---+ Class Foswiki::SampleClass
---++ ATTRIBUTES
---+++ ObjectAttribute lastError

A hash containing two keys:

$ errNum : Integer error code
$ errStr : Text explanation of the error

Lazy attribute.

---
*Related topics:* ClassMethod, ObjectMethod, StaticMethod
2 changes: 1 addition & 1 deletion core/data/System/ObjectMethod.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,4 @@ Telecoms::phone( $mobile, "home" );
</verbatim>

---
*Related Topics:* ClassMethod, StaticMethod
*Related Topics:* ClassMethod, StaticMethod, ObjectAttribute
1 change: 1 addition & 0 deletions core/data/System/SpecFileFormat.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
%META:TOPICINFO{author="ProjectContributor" date="1506731777" format="1.1" version="1"}%
%META:TOPICPARENT{name="FoswikiV3Essentials"}%
---+!! Spec Files v2.0
%TOC%

Expand Down
2 changes: 1 addition & 1 deletion core/data/System/StaticMethod.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@ my $colour = Telecoms::defaultColour()

</verbatim>

*Related Topics:* ClassMethod, ObjectMethod
*Related Topics:* ClassMethod, ObjectMethod, ObjectAttribute
4 changes: 3 additions & 1 deletion core/lib/Foswiki/Config/Node.pm
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,9 @@ and can be anything, even *undef*.
In uninitialized state =has_value()= returns _false_. In this case =getValue()=
method will return data defined in =default= option as returned by
=Foswiki::Config::ItemRole= =getOpt()= method.
%PERLDOC{"Foswiki::Config::ItemRole" method="getOpt"}% method.
See: %PERLDOC{"Foswiki::Config"}%
=cut

Expand Down

0 comments on commit 16c1232

Please sign in to comment.