Jump to content

Code Hooks - Best practice


The Old Man

Recommended Posts

Hi,

I'm making a plug-in with a code hook in Dev mode on my local Xampp. I read that you shouldn't replicate the source code but the Development documentation doesn't actually go on to provide any explanation on how to otherwise insert our code into the existing functions within a method.

If you have several existing IPS functions mixed with chunks of PHP within a method, within a class, inside a system/file/file.php, and you want to extend them or insert additional code, what is the recommended way to do it, please?

I may not be describing it correctly so I'm picturing this as an example of what I want to hook into...

class xxx extends xxxxxxxx

...

method 1

   function a {

   various PHP used in function a

   }

   function b {

   some more PHP used within function b

   }

method 2

   function c {

   Quite a bit of PHP used within c

   }

   function d {

  some PHP used within d

   }

   function e {

   some more PHP used within e

   }

method 3

   function f {

   some more PHP used within f

   }

   function g {

   some more PHP used within function g

   }

etc...


 

I'm thinking that if I want to insert my code using a code hook within function d, I can't just insert it where I want without either

A) replicating at least some of the existing code by copying function d into my hook then editing it to add my code or

B) maybe even replicating all of method 2 in its entirety including all 3 of its functions (c,d,e) in my new hook, as it can't be split up/avoided?

Is that correct?

Secondly, if it were an app I was making instead of a plug-in, does it work the same way still using a code hook and copying the function or method into my hook?

Many thanks.

Link to comment
Share on other sites

Thank you. I think I understand it. So you don't make a copy of the original function/s you want to extend, just reference the parent function using parent::functionname? Does it still run or end up running twice, or does the code hook overrule the parent?

3 hours ago, Aiwa said:

Apps vs plug-ins makes no difference in code hook functionality. 

Great, thanks for the help.

Link to comment
Share on other sites

49 minutes ago, The Old Man said:

So you don't make a copy of the original function/s you want to extend, just reference the parent function using parent::functionname?

Yes

You should brush up on inheritance. If you don't call the parent you break the chain, execution stops with what you tell it to do. So long as you return the parent, via parent::functionname(), you maintain geneology and execution continues. 

You can't insert little lines of code in the middle of a method. If that's what you're after you need to find another hook point. 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...