Go Back   vb.org Archive > vBulletin Article Depository > Read An Article > Programming Articles
Object Programming in PHP
Ziki's Avatar
Ziki
Join Date: Nov 2005
Posts: 2,704

It appears that I am still alive

Show Printable Version Email this Page Subscription
Ziki Ziki is offline 03-26-2007, 10:00 PM

Object Oriented Programming is the neat little thing you can see everywhere in vBulletin code using the syntax $vbulletin->function.It is basically a variable that contains functions or any code you like.

So the base of an object is to create the class which looks something like this:

Code:
class nameofclass {
//my first class was created


}
Ok we now created a class which will hold the prefix of all functions so now we want to try adding a simple function,for instance:

Code:
class nameofclass {
function plus ($x, $y)
{
$this->plus = $x + $y;
return $this->plus;
}
}
So now we created a function inside.Notice $this which will be later replaced by the name of the class.

But when you would try to echo it it would give you an error that the function is a non-object.For that we have to construct the actual object:

Code:
class nameofclass {
function plus ($x, $y)
{
$this->plus = $x + $y;
return $this->plus;
}
}
$nameofclass = new nameofclass();
new indicates that we created a new object.So now we can use $nameofclass->plus(2, 9) which will output 11.Of course you can insert more functions.

This was a very short introduction to OOP.
Reply With Quote
  #2  
Old 03-30-2007, 08:28 PM
budlight budlight is offline
 
Join Date: Mar 2007
Posts: 7
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I'm making an external script to post to a vBulletin forum. I pretty much need to do it an existing class. The problem is I need to require global.php within the class itself. This script errors when I move the require to inside the constructor. I have no clue why.
PHP Code:
<?php

 define
('SKIP_SESSIONCREATE'1);
 
define('DIE_QUIETLY'1);
 
define('THIS_SCRIPT''test');
 
define('CWD'$_SERVER['DOCUMENT_ROOT'].'/4um');
 require_once(
$_SERVER['DOCUMENT_ROOT'].'/4um/global.php');
 
 
#looks like we can simply pass the forum directory to this script and make all operations according to get/posts on this script.  Kind of ++++ed but what can you do?
 #this script will need to be secured from unauthorized users making a post to it. 
 
class externalVB {


  public 
$vB_forumid    =    12;
  public 
$vB_postuserid 1;
  public 
$vB_userid 1;
  public 
$vB_username 'Budlight';
  public 
$vB_pagetext 'test';
  public 
$vB_title    =    'hello';
  public 
$vB_allowsmilie    =    '1';
  public 
$vB_visible    =    '1';
 

    function 
__construct() {


   }

 
 function    
create_new_thread($vB_username)    {
     
     
 global 
$vbulletin;


 
 
 
$vB_threaddm =& datamanager_init('Thread_FirstPost'$vbulletinERRTYPE_STANDARD'threadpost');
 
#$vB_threaddm = new vB_DataManager_Thread_FirstPost($vbulletin, ERRTYPE_STANDARD);

 
 
$vB_threaddm->do_set('forumid',    $this->vB_forumid);
 
$vB_threaddm->do_set('postuserid'$this->vB_postuserid);
 
$vB_threaddm->do_set('userid'$this->vB_userid);
 
$vB_threaddm->do_set('username'$this->vB_username);
 
$vB_threaddm->do_set('pagetext'$this->vB_pagetext);
 
$vB_threaddm->do_set('title',    $this->vB_title);
 
$vB_threaddm->do_set('allowsmilie',    $this->vB_allowsmilie);
 
$vB_threaddm->do_set('visible',    $this->vB_visible);

  
$vB_result$vB_threaddm->save();
 

return 
$vB_result;
}


}


                if(!empty(
$_GET["addThread"])) {
                    
$a = new externalVB();
                
                echo 
$a->create_new_thread('Budlight');
                    }
                
            
            




?>
Reply With Quote
  #3  
Old 06-27-2007, 10:34 AM
YopY YopY is offline
 
Join Date: Aug 2006
Posts: 8
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

imho, this article doesn't even begin to explain object-oriented programming in PHP.

@budlight, it would help if you copy / pasted the error here.
Reply With Quote
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 02:46 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.04117 seconds
  • Memory Usage 2,224KB
  • Queries Executed 18 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (3)bbcode_code
  • (1)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_article
  • (1)navbar
  • (4)navbar_link
  • (120)option
  • (3)post_thanks_box
  • (3)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (3)post_thanks_postbit_info
  • (2)postbit
  • (3)postbit_onlinestatus
  • (3)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete