bitweaverPackage
The central architectural concept in bitweaver
Package Architecture
A bitweaver package is simply a directory in the bitweaver root directory. An optional requirement is a bitweaver-centric initialization file called "bit_setup_inc.php" that will get included by the KernelPackage during initialization. A bitweaver package can be a set of highly-integrated features such as the WikiPackage or BlogPackage or it could be an external app, like phpBB, adopted to use the bitweaver framework with minimal modifications to keep it VirginSource.
The KernelPackage will automatically create two standard 'define's for every package:
The solution is low tech and dirt simple. bitweaver does not insist on a large API infrastructure when some packages might only need to execute a few lines of code. Other packages might need to access a more complex bitweaverAPI. So bitweaver lets developers decide for themselves how simple or complex to make their own package. This should also allow ports to stay as virgin as possible, and stay much more up to date with their own code base.
Using packages, features can be added and removed at will, without breaking things. By segregating and creating packages for all features, the doors are opened to many application integrations. It also gives new packages the flexibility and robustness to grow at their own rate.
Be sure to read TemplatesPackage.
Here is an example of the directory structure:
root/
+ articles/
+ blogs/
+ admin/
- admin_blogs_inc.php
- schema_inc.php
- upgrade_inc.php
+ templates/
- admin_blogs.tpl
+ modules/
- mod_last_blog_posts.tpl
- mod_last_blog_posts.php
- bit_setup_inc.php
- blog_lib.php
- blog_rss.php
- edit.php
- index.php
- list_posts.php
- post.php
- print_post.php
- rankings.php
- send_blog_post.php
- view.php
- view_post_image.php
- view_post.php
.
+ phpbb
- bit_setup_inc.php
+ templates/
- menu_phpbb.tpl
.
+ wiki
.The kernel will define two global constants for every package. See KernelInitialization for more info...
Life Cycle of a Package
Install
- package version check (table in the database) to indicate previous install and upgrade requirements
- package tables are created if they don't exist and default values populated
- package settings are inserted into bit_preferences
- upgradeBitweaver will handle upgrading the files
Initialization
- bit_setup_inc.php is read from package dir
- application menu is registered
- miscellaneous initialisation code is executed
Related Items
Packages
A list of packages available for installation
Archived Picture Upload with Fisheye under Windows • bitweaverPackage • GatekeeperPackage • MessagesPackage • MetaPackage • PackageVisionBtodoroff • phpdoc content status • PortingTikiWikiPackages • QuotaPackage • SmileysPackage • StencilsPackage • StoragePackage • Tutorial_Custom_Package
Online Help » Packages
ArticlesPackage • BitcartPackage • BitcommercePackage • bitweaverPackage • BlogsPackage • BnspellPackage • BoardsPackage • CalendarPackage • CascaderPackage • CategoriesPackage • ChatterboxPackage • EventsPackage • FckeditorPackage • FisheryPackage • FisheyePackage • GalaxiaPackage • GatekeeperPackage • GeoPackage • GmapPackage • GroupsPackage • IlikePackage • InstallPackage • KernelPackage • LanguagesPackage • LDAPContactsPackage • LibertyPackage • LibertySecurePackage • MessagesPackage • MetaPackage • ModCommentsPackage • ModerationPackage • Moderation Package • NewslettersPackage • NexusPackage • PackagerPackage • PdfPackage • PhpBBPackage • PhpgedviewPackage • PigeonholesPackage • PodcastsPackage • ProtectorPackage • QuicktagsPackage • QuotaPackage • ReBlogPackage • RecommendsPackage • RSSPackage • SamplePackage • SearchPackage • ShoutboxPackage • SitehomePackage • SmileysPackage • StarsPackage • StatsPackage • StencilsPackage • StickiesPackage • StoragePackage • SwitchboardPackage • TagsPackage • TemplatesPackage • ThemesPackage • TidbitsPackage • TinymcePackage • TreasuryPackage • Tutorial_Custom_Package • UsersPackage • WikiPackage • XmlrpcPackage • YellowpagesPackage
Comments