Re: Seeking help with relative and absolute paths [message #180866 is a reply to message #180860] |
Fri, 22 March 2013 13:12 |
Scott Johnson
Messages: 196 Registered: January 2012
Karma:
|
Senior Member |
|
|
On 3/22/2013 12:11 AM, J.O. Aho wrote:
> On 22/03/13 05:24, The Frog wrote:
>> Thankyou very much for the replies. I appreciate the help. I have a
>> follow-up question then regarding constants and setting them. If I
>> define a constant say in the sites landing page (eg/index.php) will
>> that constant then remain available for any scripts on pages that
>> follow without having to 'require' them?
>
> <?php
> DEFINE('A', true);
> include "fileB.php";
> ?>
>
> In this case the A would exists in fileB.php, but it's a quite iffy way
> to do it, as if you include fileB.php from another script which don't
> have the define, then the A will be missing and you will end up with an
> error. A constant will only exists after it has been defined and will
> not remain in memory when you load a new page.
>
>> The reason I ask is one of ignorance on my part. Having consulted the
>> php manual on constants I am unable to make a clear determination on
>> their usage and scope. It would seem in my experimentation and
>> learning that a constant does not in fact remain but in fact needs to
>> be re-defined in each unique page change on the users part. While this
>> can be accommodated in the scripts and pages that I write I am
>> wondering if there is a better way? Define once and use many places?
>
> A constant will not magically live into another page, if you want a
> value to be set on pageA and then be accessible on pageB and pageC then
> use $_SESSION[]
>
> see: http://www.php.net/manual/en/intro.session.php
>
>
I think you are true in the aspect of magically appear but if you code
it properly, the CONSTANT will be available for any script/page you need it.
For example:
If you create your config file and put your constants in it, any script
that includes that config file will have that constant visible which at
this point is not much functionally difference then setting data for
each page, but this provides a single location for setting site wide data.
And if you sink your config below the root as discussed earlier then
that data will also be relatively protected.
I use the config and defines for setting SQL criteria, typing friendly
root paths and server side peculiarities.
Then when you move from your Dev site to the Prod site, you only need to
change one file.
You can have separate configs for public and admin as well.
Hope that makes sense.
|
|
|