[BNM] Dumb PHP question
paul perrin
paul at idltd.com
Mon Jun 4 08:50:34 BST 2007
Seems like a reasonable approach - only adding additional code if it is
required, but presumably means you have to manually check if getters/setters
are in use for any particular property. 5 out of 10 :-)
Paul /)/+)
On 03/06/07, Adam Wright <adamw at archgrove.co.uk> wrote:
>
> Public fields are always a bit of a sticky issue, especially in
> languages like C & Java where field access vs "etter" function call
> semantics are baked in at compile time. If you commit to a public field,
> your API is stuck with a public field for evermore, so if you ever need
> to add additional validation/logging, your options are limited.
>
> Ironically for this discussion, PHP from 5 onwards doesn't suffer so
> badly from this (though the solution is messy). Any attempt at field
> access to a nonexistant field attempts to call a class function "__get"
> or "__set" appropriately, with the name of the field that failed to
> resolve. So if you have, say,
>
> class Foo
> {
> public $Bar;
> }
>
> And later decide that Bar should have been a method, you can write
>
> class Foo
> {
> public function __get($field)
> {
> if ($field == "Bar")
> {
> // ...
> }
> }
>
> public function __set($field, $value)
> {
> // ...
>
> Other (generally late bound) languages have similar constructs.
>
> Personally, when writing APIs for publication, I err on the side of
> "etters" (unless the field is const/immutable); the flexibility offered
> to pickup on design mistakes is valuable. APIs for internal/personal use
> can be a little laxer (especially with modern refactoring tools).
>
> adamw
>
> paul perrin wrote:
> > A bit of a shame you have to provide your own hook to be able to add
> such
> > things. A waste of the programmers time, and additional lines of code to
> > host bugs.
> >
> > Paul /)/+)
> >
> > On 03/06/07, Tom Hume <Tom.Hume at futureplatforms.com> wrote:
> >> Nope; they let you add things like value and type checking later on
> >> without having to do massive search-and-replaces on your code.
> >>
> >> On 3 Jun 2007, at 00:32, paul perrin wrote:
> >>
> >>> Isn't the automatic use of getter and setter methods the last
> >>> refuge for those that don't really know when to use public properties?
> >>>
> >>> Paul /)/+)l
> >>>
> >>>
> >>> On 02/06/07, Richard Maynard / Wessex Networks
> >>> <rjm at wessexnetworks.com>
> >>> wrote:
> >>>> Shouldn't class variables be modified with getter and setter methods
> >>>> rather
> >>>> than modifying them as if public?
> >>>>
> >>>> I believe that is what is called bad practice in Java, but PHP
> >>>> seems to be
> >>>> more of a free-for-all when it comes to best practices.
> >>>>
> >>>> Richard.
> >>>>
> >>>> Wessex Networks
> >>>> Linchmere Place
> >>>> Ifield
> >>>> Crawley
> >>>> West Sussex
> >>>> RH11 0EX
> >>>> www.wessexnetworks.com rjm at wessexnetworks.com
> >>>> T: 01293 542080 F: 01293 553849
> >>>>
> >>>> -----Original Message-----
> >>>> From: bnmlist-bounces at brightonnewmedia.org
> >>>> [mailto:bnmlist-bounces at brightonnewmedia.org] On Behalf Of Justin
> >>>> Wanstall
> >>>> Sent: 02 June 2007 12:11
> >>>> To: 'Brighton New Media'
> >>>> Subject: Re: [BNM] Dumb PHP question
> >>>>
> >>>> The $claim part refers to an instance of a class which has been
> >>>> initiated
> >>>> and the ->value is simply a value within that instance. It's Object
> >>>> Oriented
> >>>> programming.
> >>>>
> >>>> http://en.wikipedia.org/wiki/Object-oriented_programming
> >>>>
> >>>> Justin.
> >>>>
> >>>> -----Original Message-----
> >>>> From: Alan Newman [mailto:alan at sensibledevelopment.com]
> >>>> Sent: 02 June 2007 11:52
> >>>> To: 'Brighton New Media'
> >>>> Subject: [BNM] Dumb PHP question
> >>>>
> >>>> Hi,
> >>>>
> >>>>
> >>>>
> >>>> We have inherited a PHP UI for a back end application we are
> >>>> customizing
> >>>> and
> >>>> I can't find an answer to this on the web, but I suspect I am just
> >>>> not
> >>>> looking in the right places.
> >>>>
> >>>>
> >>>>
> >>>> We are seeing this sort of expression a lot and are not sure what
> >>>> it is:
> >>>>
> >>>>
> >>>>
> >>>> $claim->value
> >>>>
> >>>>
> >>>>
> >>>> It seems to come up a lot - is it some sort of "injection" of one
> >>>> value in
> >>>> to another? It would really help to know what is going in and
> >>>> would help
> >>>> out
> >>>> us silly Java types a lot!
> >>>>
> >>>>
> >>>>
> >>>> Cheers
> >>>>
> >>>>
> >>>>
> >>>> - Alan
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> HYPERLINK "http://
> >>>> www.sensibledevelopment.com"www.sensibledevelopment.com-
> >>>> scalable back end web development that looks good.
> >>>>
> >>>>
> >>>>
> >>>> ::email:: HYPERLINK
> >>>> "mailto:alan at sensibledevelopment.com"alan at sensibledevelopment.com
> >>>>
> >>>> ::land:: +44 (0)1273 621110
> >>>>
> >>>> ::mobile:: +44 (0)7711 006551
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> No virus found in this outgoing message.
> >>>> Checked by AVG Free Edition.
> >>>> Version: 7.5.472 / Virus Database: 269.8.6/828 - Release Date:
> >>>> 01/06/2007
> >>>> 11:22
> >>>>
> >>>> --
> >>>>
> >>>>
> >>>> BNM Social - http://upcoming.yahoo.com/event/190648
> >>>>
> >>>> BNM Subscribe/Unsubscribe:
> >>>> http://lists.wessexnetworks.com/cgi-bin/mailman/options/bnmlist/
> >>>> BNM info/archives:
> >>>> http://www.brightonnewmedia.org/
> >>>>
> >>>> BNM archive search:
> >>>> http://www.roddis.org/bnm/search.php
> >>>>
> >>>> BNM powered by Wessex Networks:
> >>>> http://www.wessexnetworks.com
> >>>>
> >>>> --
> >>>>
> >>>>
> >>>> BNM Social - http://upcoming.yahoo.com/event/190648
> >>>>
> >>>> BNM Subscribe/Unsubscribe:
> >>>> http://lists.wessexnetworks.com/cgi-bin/mailman/options/bnmlist/
> >>>> BNM info/archives:
> >>>> http://www.brightonnewmedia.org/
> >>>>
> >>>> BNM archive search:
> >>>> http://www.roddis.org/bnm/search.php
> >>>>
> >>>> BNM powered by Wessex Networks:
> >>>> http://www.wessexnetworks.com
> >>>>
> >>>> --
> >>>>
> >>>>
> >>>> BNM Social - http://upcoming.yahoo.com/event/190648
> >>>>
> >>>> BNM Subscribe/Unsubscribe:
> >>>> http://lists.wessexnetworks.com/cgi-bin/mailman/options/bnmlist/
> >>>> BNM info/archives:
> >>>> http://www.brightonnewmedia.org/
> >>>>
> >>>> BNM archive search:
> >>>> http://www.roddis.org/bnm/search.php
> >>>>
> >>>> BNM powered by Wessex Networks:
> >>>> http://www.wessexnetworks.com
> >>>>
> >>> --
> >>>
> >>>
> >>> BNM Social - http://upcoming.yahoo.com/event/190648
> >>>
> >>> BNM Subscribe/Unsubscribe: http://lists.wessexnetworks.com/cgi-bin/
> >>> mailman/options/bnmlist/
> >>> BNM info/archives:
> >>> http://www.brightonnewmedia.org/
> >>>
> >>> BNM archive search:
> >>> http://www.roddis.org/bnm/search.php
> >>>
> >>> BNM powered by Wessex Networks:
> >>> http://www.wessexnetworks.com
> >>>
> >> --
> >> Future Platforms Ltd
> >> e: Tom.Hume at futureplatforms.com
> >> t: +44 (0) 1273 819038
> >> m: +44 (0) 7971 781422
> >> company: www.futureplatforms.com
> >> personal: tomhume.org
> >>
> >>
> >> --
> >>
> >>
> >> BNM Social - http://upcoming.yahoo.com/event/190648
> >>
> >> BNM Subscribe/Unsubscribe:
> >> http://lists.wessexnetworks.com/cgi-bin/mailman/options/bnmlist/
> >> BNM info/archives:
> >> http://www.brightonnewmedia.org/
> >>
> >> BNM archive search:
> >> http://www.roddis.org/bnm/search.php
> >>
> >> BNM powered by Wessex Networks:
> >> http://www.wessexnetworks.com
> >>
> --
>
>
> BNM Social - http://upcoming.yahoo.com/event/190648
>
> BNM Subscribe/Unsubscribe:
> http://lists.wessexnetworks.com/cgi-bin/mailman/options/bnmlist/
> BNM info/archives:
> http://www.brightonnewmedia.org/
>
> BNM archive search:
> http://www.roddis.org/bnm/search.php
>
> BNM powered by Wessex Networks:
> http://www.wessexnetworks.com
>
More information about the BNMlist
mailing list. Powered by Wessex Networks