Top.Mail.Ru
o9software — LiveJournal
? ?
  | 0 - 6 |  
o9software [userpic]

Beta website nearing completion

April 16th, 2005 (04:13 pm)

The o9software website beta is getting nearer and nearer to completion.

o9software [userpic]

UPDATE: OMORi Version 2.0beta1.1

April 8th, 2005 (05:07 pm)

New update for OMORi is now active.

Current Version is now 2.0beta1.1

No action is required by users.
Update effects all users.

o9software [userpic]

Timesheet v2.0beta

February 26th, 2005 (04:47 pm)

Release Announcement

Version 2.0Beta of our timesheet software will be released soon. Estimated time table is by the end of next week.

Version 2 will include the following new features/improvements:


  1. New easier better looking interface

  2. Added support for job categories

  3. Fixed many bugs in the clocking in and out system

  4. New settings page allows users to modify all of their information

  5. Full CSS based design allows for much better accessability



Future releases of version 2 will include the following features and more:

  1. Multiple users per business

  2. Full language support in Spanish, Swedish, and more

  3. Customisable CSS for integration

  4. Record exporting functions

  5. Custom invoice layout settings



We hope that there will not be anymore delays in the release of version 2beta.

Please contact timesheet@o9software.net if you wish to be a part of the beta testing.

Richard Marshall
lead programmer
richard@o9software.net

o9software [userpic]

PHP5 and the singleton pattern

October 29th, 2004 (05:45 pm)

PHP 5 adds some new features that make using the singleton pattern much easier. The problem was that PHP4 did not have static class variables. So you had to use a global function to act as the singleton creator. However PHP5 removed this problem and made singleton creation something that can be completely inside the class.

The following code show how to create a simple singleton:
codeCollapse )
The output of this code will be:

  $foo: Setting the example variable
  $bar: Setting the example variable
  They are identical


This shows that both $foo and $bar are references to the same object.

Using this method of creating objects is useful for situations like database classes or a file i/o class. That if you create more then one instance it is not helpful and just wastes resources.

However using this method does allow for creating more then one instance if it is deemed necessary with out modification of the class. An example of how this might be useful is if you need to connect to two different databases at the same time.

To create a separate instance just create an object of the singleton class normally with the 'new' operator.

For example after the previous code you could add:
codeCollapse )
Will output:
  $foobar: This is a differance string
  $foo: Setting the example variable

As you can see $foobar is a new instance of the singleton class.

To create singletons in PHP4 you had to use a global function that did basicaly what the singleton::create() function does. Since in php4 only global functions could have static variables that was the only way to implement the singleton pattern.

That is all for today

o9software [userpic]

o9soft.DEV

October 26th, 2004 (01:12 am)

I have just recently created a community for o9softwares development.

Anyone can become a member and post on the community, if you have questions regarding our work, our products, or just plain programming questions please feel free to post them.

The community: Imageo9soft

o9software [userpic]

PHP5 makes php a much stronger player

October 26th, 2004 (12:35 am)
current song: .hack//OUTBREAK - menu song

With the release of PHP5 I have been converting a lot of the code in the o9soft classlibs to php5, the changes mostly are in the OOP area. PHP5 adds full support for constructors and destructors which makes for much more powerful classlibs.

One very good example of this is in our mySQL library, now having support for a destructor we can remove the need for a call to mysql::close() at the end of a script using the mysql lib. now upon the completion of the script the mysql::__destruct() method calls mysql::close() automatically.

Current mySQL destructor:

codeCollapse )

As you can see this is a very simple method, all it does is make a call to the debugger, and the close() method. In php4 having the automatic calling of a function was much more cumbersome.

Another very cool new feature in php5 is the ability to create abstract classes, if you do not know what that means... basically it means that a class defined as abstract can not have an object initiated directly, it must be extended. This feature has given us the ability to create a master abstract class that all of our classes are build from that gives all of the classes references to $_err, $_debug, $_db, and $_var. This removes the need for any global statements in any class methods, or having to setup the references in each class definition. Ok to be completely honest this feature wasn't really necessary to implement this master class idea, i just haven't thought of it till now. Previously i could have setup a master class that was not abstract and used that as the master. Having the abstract class removes any problems that might occur if somehow an instance of the master class was created.

Here is a scaled down version of our master class:

CodeCollapse )

Not a whole lot to that. If an object were to be created from that class php would spit out an error like the one below.

Fatal error: Cannot instantiate abstract class std in /www/o9soft/dev/lib/std.php on line 4

And thats all for today

  | 0 - 6 |  
Image