Pages: 1 2 3 :: [one page] |
Author |
Thread Statistics | Show CCP posts - 0 post(s) |

Peter Powers
FinFleet IT Alliance
|
Posted - 2010.06.03 15:15:00 -
[1]
Hello everyone,
during the last few days i had a look at the available PHP API Libraries, and well decided i'd be better of porting my Ruby Library (EAAL) to PHP.
so i did (mostly last night), and now its time for a first release.
you can get the library at github, you will also find a little bit of documentation there.
a few more words why i wrote this instead of using Yapeal or Ale, you can find in my Blog.
Hint: While the library works alone, it integrates very well in King23 (the framework i used for building northern-crusade).
best regards, PP
PS: you can find a page about it on the eve-dev wiki too.
Northern Crusade - Daily numbers on EVE's largest current conflict |

Qoi
New Eden Warriors
|
Posted - 2010.06.03 20:16:00 -
[2]
Looks very solid, thank you very much for sharing it 
|

Johnathan Roark
Caldari The Graduates Morsus Mihi
|
Posted - 2010.06.04 01:56:00 -
[3]
I haven't taken the time to look at it, but I'll see if it works better for some of my projects. I think you kind of miss the point of yapeal. Its not really a library in the traditional since. Most projects are going to take data from the API, do what ever, then that data ends up in a database. Yapeal skips directly to putting the data into a database. I do agree that documentation could be better.
POS-Tracker 3.0 Hosting |

Peter Powers
FinFleet IT Alliance
|
Posted - 2010.06.04 08:29:00 -
[4]
Originally by: Johnathan Roark I haven't taken the time to look at it, but I'll see if it works better for some of my projects. I think you kind of miss the point of yapeal. Its not really a library in the traditional since. Most projects are going to take data from the API, do what ever, then that data ends up in a database. Yapeal skips directly to putting the data into a database. I do agree that documentation could be better.
i dont think that invalidates anything i said. Even with that goals it should be configureable through Code, not by ini only, and well, putting direct in the database means you have to fetch from there, process the data, and then put it down in the way you need it, its quite unlikely applications will use the data the way yapeal stores it. (and if, then i dont want to be the one optimizing it for higher loads :p)
Northern Crusade - Daily numbers on EVE's largest current conflict |

Dragonaire
Caldari Corax. New Eden Retail Federation
|
Posted - 2010.06.04 09:09:00 -
[5]
Quote: Even with that goals it should be configureable through Code, not by ini only ...
The only things that are in the ini is the DB user/password stuff (can't store them in the DB since they are needed to access it ) and stuff dealing with logging and caching which really doesn't need to be configure by anyone but the developer using it as a library in their application. Everything else is configured and stored in the DB util tables and Yapeal includes helper classes to manage them.
Quote: ... putting direct in the database means you have to fetch from there, process the data, and then put it down in the way you need it
You're doing something wrong if you're trying to store the data again outside the DB instead of using it directly through selects with joins etc as needed. If you're not use to DBs, which I wasn't really until a couple projects ago, you try doing stuff like that instead of letting the DB work for you. Once I learned how they can help you for things like this I'd never go back but I also know they aren't for every project either.
In the end it all depends on the application. For people use to developing 2-3 tier web applications Yapeal is a better fit. For simple one tier ones like your talking about what you've made works well and the project that Yapeal grow out of had much the same idea but in the end didn't scale well until it move to something with a database and the more modern multiple tier model. There's always room for other ideas how to do things and hopefully some people will find Pheal useful for them in some of their projects just like many people have found Yapeal and ALE to be in many others. -- Finds camping stations from the inside much easier. Designer of Yapeal for Eve API.
|

Catari Taga
Centre Of Attention Rough Necks
|
Posted - 2010.06.04 10:28:00 -
[6]
Edited by: Catari Taga on 04/06/2010 10:30:09
Originally by: Dragonaire
Quote: ... putting direct in the database means you have to fetch from there, process the data, and then put it down in the way you need it
You're doing something wrong if you're trying to store the data again outside the DB instead of using it directly through selects with joins etc as needed.
I don't want to get involved in your library wars but I wanted to comment on that one.
Storing (i.e. caching) data structured in the way your application needs it is always going to be faster than querying from several tables in a database, so there is absolutely nothing wrong with doing that. Querying the database is just a convenience that saves you time to set up proper caching, or in case of fast changing input data it may be a necessity (generally not with the API, though, since it enforces caching).
Add a library to that, which is what he commented on, and you're adding several levels of complexity, disk accesses and many processing cycles used and then your application will still have to do the work it would have had to do without the library, anyway.
Libraries are a convenience, they make coding faster, never your application.
PS: I love all your libraries, don't shoot me.  |

Amida Ta
German Mining and Manufacture Corp.
|
Posted - 2010.06.04 12:10:00 -
[7]
Edited by: Amida Ta on 04/06/2010 12:11:06
Originally by: Catari Taga
Libraries are a convenience, they make coding faster, never your application.
I'd not support that as a general statement. E.g. EveAI supports a (configurable) complete memory-representation of data. It's not possible to be faster than this regardless if you do it yourself or by hand. The difference is that when you do it yourself it costs lots of time which you then don't have to optimize. So for a sufficiently large (and good) library the library is not only going to make coding faster but also your application. If that wouldn't be true then you should try to develop your own language and own operating system. However I doubt that you (yourself) could develop an OS that is faster than any of the mainstream existing OSes for exactly the same reasons I mentioned above. So using an existing OS is not only (much) more convenient, its also faster.
P.S. From a purely theoretical point of view (ignoring time completely) you would be right. _________________________ EveAI.Live - The EVE-Online API/class library for .Net, C# and VB.Net |

Catari Taga
Centre Of Attention Rough Necks
|
Posted - 2010.06.04 12:32:00 -
[8]
Leaving question of my ability to code an operating system aside, which is besides the point (we are discussing special purpose vs. do it all code, special purpose will almost always be more efficient, even or in particular on OS level), I think I had coding time factored in in my statement, therefore I do not think we disagree - at least I do not disagree with what you said and yet I still stand by my statement. --
Originally by: Zeke Mobius I swear the catholic church was faster at admitting the earth was round than CCP at fixing stuff.
|

Peter Powers
FinFleet IT Alliance
|
Posted - 2010.06.04 13:09:00 -
[9]
Originally by: Dragonaire The only things that are in the ini is the DB user/password stuff (can't store them in the DB since they are needed to access it ) and stuff dealing with logging and caching which really doesn't need to be configure by anyone but the developer using it as a library in their application.
As a developer using it as a library i am not supposed to know how the database setup, or the pathes for caches are at the users side. i do want to offer the user a way to configure it, but i do not want him to edit ini files of libraries that he does not need to know about.
Originally by: Dragonaire You're doing something wrong if you're trying to store the data again outside the DB instead of using it directly through selects with joins etc as needed. If you're not use to DBs, which I wasn't really until a couple projects ago, you try doing stuff like that instead of letting the DB work for you. Once I learned how they can help you for things like this I'd never go back but I also know they aren't for every project either.
Cached data does not belong in the database, unprocessed data, which is stored processed in the database does not need to be there either, no point in having double the amount of data arround. Data that does not need to be processed at all - well can be served directly from the cache, being much faster than using a database inbetween.
Originally by: Dragonaire In the end it all depends on the application. For people use to developing 2-3 tier web applications Yapeal is a better fit.
No.
Originally by: Dragonaire For simple one tier ones like your talking about what you've made works well and the project that Yapeal grow out of had much the same idea but in the end didn't scale well until it move to something with a database and the more modern multiple tier model. There's always room for other ideas how to do things and hopefully some people will find Pheal useful for them in some of their projects just like many people have found Yapeal and ALE to be in many others.
i was not talking of any "simple one tier" applications at all, except you want to call the code snippets i provided as documentation "applications".
And as soon as the data you serve gets more complex, the last thing you want todo is serve complex joins straight from the database. You serve them through various ways of caching, or you kill you whole setup.
Northern Crusade - Daily numbers on EVE's largest current conflict |

Amida Ta
German Mining and Manufacture Corp.
|
Posted - 2010.06.04 13:15:00 -
[10]
Originally by: Catari Taga we are discussing special purpose vs. do it all code, special purpose will almost always be more efficient, even or in particular on OS level
20 years ago (when we had procedural code that was fully compiled down to raw CPU instructions) I would have completely agreed to this. But today this is just not true anymore. One example from .Net: .Net has generic use-for-everything collections (can be used for any type). Now say you want a specific collection for int. You can write the complete code on your own, but your special IntList will NEVER be faster than a generic List<int>. In the best case your self-written code will be just as efficient as the general-purpose one. Or in EveAI if you need Blueprints for Products thats a single memory read. It's impossible to be more efficient than that. No matter how special-purpose your code is. I'm not saying that it's impossible that special purpose code is more efficient than other code. In fact it sometimes will be A LOT more efficiently. But as a general statement that's not true (any longer). _________________________ EveAI.Live - The EVE-Online API/class library for .Net, C# and VB.Net |

Catari Taga
Centre Of Attention Rough Necks
|
Posted - 2010.06.04 13:31:00 -
[11]
Amida Ta, please don't take this wrong, but I feel this argument is going nowhere and I don't want to derail this thread further while we haggle about semantics. I'll be happy to carry this on in game or another thread if you want but I'll stop in this one. --
Originally by: Zeke Mobius I swear the catholic church was faster at admitting the earth was round than CCP at fixing stuff.
|

Peter Powers
FinFleet IT Alliance
|
Posted - 2010.06.04 13:45:00 -
[12]
Originally by: Amida Ta
Or in EveAI if you need Blueprints for Products thats a single memory read. It's impossible to be more efficient than that. No matter how special-purpose your code is.
Is it?, even if i have a list of products, an exclusion list of products, and only need those that are not excluded with blueprints, but need all of 'em to be in my object tree? if this is one read, then i end up either with data that i dont use (using your generic implementation), or i do a specialised solution which removes the excluded ones from the ones requested, in a low-product count this specialised solution might add overhead, but in an environment with alot of data trading of the few cycles for having less memory usage might be the more efficient way.
either way, Catari Taga is right, this discussion does not belong into my thread, so lets keep it out of here.
Northern Crusade - Daily numbers on EVE's largest current conflict |

Amida Ta
German Mining and Manufacture Corp.
|
Posted - 2010.06.04 14:46:00 -
[13]
Originally by: Peter Powers
Originally by: Amida Ta
Or in EveAI if you need Blueprints for Products thats a single memory read. It's impossible to be more efficient than that. No matter how special-purpose your code is.
Is it?, even if i have a list of products, an exclusion list of products, and only need those that are not excluded with blueprints, but need all of 'em to be in my object tree? if this is one read, then i end up either with data that i dont use (using your generic implementation),
As you asked: This can't be one memory read (which is limited to 32/64bits data/pointer on a 32/64bit system) anyways. Moreover EveAI doesn't have ANY build in way for building sublists anyways. Thats part of the .Net framework classes that EveAI uses and will be done by the user of the library. And for those using the .Net framework ones will again me more efficient than coding the list-selection yourself.
But as requested lets rest this topic on your thread. _________________________ EveAI.Live - The EVE-Online API/class library for .Net, C# and VB.Net |

Dragonaire
Caldari Corax. New Eden Retail Federation
|
Posted - 2010.06.04 16:55:00 -
[14]
Quote: As a developer using it as a library i am not supposed to know how the database setup, or the pathes for caches are at the users side. i do want to offer the user a way to configure it, but i do not want him to edit ini files of libraries that he does not need to know about.
Right so you offer the option to configure them along with anything else you let your end users change in your application and you handle updating the ini file inside the application because they don't care what part of the code you are using needs it.
Quote: Cached data does not belong in the database, unprocessed data, which is stored processed in the database does not need to be there either, no point in having double the amount of data arround.
I agree that if you already have it in a preprocessed/full processed state you really don't need to store the raw data too but as I found out lots of people wanted the XML cached where they could get at it so listening to my users (the application developers) I give them the option to cache the XML as files or in the DB but it's not required for Yapeal to work and can be turned off if not wanted.
Quote: Data that does not need to be processed at all - well can be served directly from the cache, being much faster than using a database inbetween.
If you are showing the XML directly to the user than that is true but I'm guessing you aren't doing that Are there times when it's easier and faster to use the data straight from the XML say into HTML page absolutely but once you have to start translating all those wonderful TypeID numbers etc into names and pictures in your application using the static data dump from a DB it makes more sense to combine the API data from a DB table with it than having to process the XML on every page refresh for hundreds or thousands of items. Are there ways to do it so you don't have to do that yes but once you start coding things to do that you're starting to duplicate in you application things that have already been solved by other people in all the exist caching libraries for PHP, in the web server or in effect making your own custom DB server. Just as was discussed earlier in this thread that can be a better/faster way of doing things but often there are better uses for your time as well.
Quote: No.
???
Quote: And as soon as the data you serve gets more complex, the last thing you want todo is serve complex joins straight from the database. You serve them through various ways of caching, or you kill you whole setup.
I agree and was in effect saying much the same thing above. Simple joins on tables with good indexes don't take any extra time. If that wasn't true why would DBs have been developed to start with 
You've developed Pheal/EAAL for an application/framework you've made which is much the way the code that became Yapeal started out as in an application I developed for my corp. So it was a solution to a need you had which is good and it seems you took some time to make it in a way that allowed it to be translated fairly easily from Ruby to PHP which is great You seem to have even made it in a general enough way that others might be able to use it as well but I'll bet the chances are once people do start using it in ways you never thought of yourself you'll find changes will need to be made. Yapeal has been doing that every since I made it public over a year ago and continues to change as the APIs and the applications it is used in grow and change as well. If anyone had told me how it would grow and change when I started and the amount of time I would spend on it I probably wouldn't have believed them or might not have even started the project I'm glad I did but it's really something to look back at where it came from to what it is today and hopefully you have the same great experience happen for you with Pheal. -- Finds camping stations from the inside much easier. Designer of Yapeal for Eve API.
|

Peter Powers
FinFleet IT Alliance
|
Posted - 2010.06.04 19:18:00 -
[15]
Edited by: Peter Powers on 04/06/2010 19:18:36
Originally by: Dragonaire Right so you offer the option to configure them along with anything else you let your end users change in your application and you handle updating the ini file inside the application because they don't care what part of the code you are using needs it.
right, because writing a config file through the application is much more efficient, than using configuration which the application needs anyways. If i for example use a database, then i dont want it to be configured in two places, i want my frameworks / applications database connection data, and IF i'd agree (which i dont) with an API library writing to the database (yeah, a data import library which writes to the database directly not using my model...), then i would want my application to directly tell the library what todo, not write an additional file.
Originally by: Dragonaire I agree that if you already have it in a preprocessed/full processed state you really don't need to store the raw data too but as I found out lots of people wanted the XML cached where they could get at it so listening to my users (the application developers) I give them the option to cache the XML as files or in the DB but it's not required for Yapeal to work and can be turned off if not wanted.
Still yapeal requires acces to a database.
Originally by: Dragonaire
Originally by: Peter Powers Data that does not need to be processed at all - well can be served directly from the cache, being much faster than using a database inbetween.
If you are showing the XML directly to the user than that is true but I'm guessing you aren't doing that
No, thats why i said data that doesnt need to processed, and as i said in my statement before that, i personally think that a proper application will process the data,for example to put it in a format that fits the model.
Originally by: Dragonaire once you have to start translating all those wonderful TypeID numbers etc into names and pictures in your application using the static data dump from a DB it makes more sense to combine the API data from a DB table with it than having to process the XML on every page refresh for hundreds or thousands of items.
Yes, and thats the job of the model layer of the application, not of some data importer which has no clue at all how that Model looks.
Originally by: Dragonaire Are there ways to do it so you don't have to do that yes but once you start coding things to do that you're starting to duplicate in you application things that have already been solved by other people in all the exist caching libraries for PHP, in the web server or in effect making your own custom DB server.
you are not making any sense here, there is no existing "cache library", "web server" or "db server", which has the model logic of a new application, except you have a shared model for several applications.
Originally by: Dragonaire
Originally by: Peter Powers No.
???
i think the reason why it is NOT a good idea to use a library which comes with its own database access, its own table layouts etc. is that in modern application you want a proper model.
Originally by: Dragonaire I agree and was in effect saying much the same thing above. Simple joins on tables with good indexes don't take any extra time. If that wasn't true why would DBs have been developed to start with
pretty much because a unified way is needed to access relational data. That said, you might want to look at alternative object/document based databases, which are currently having a nice upwards trend, since they are much more efficient in storing object/document style data than most rdbms+orm based solutions.
Northern Crusade - Daily numbers on EVE's largest current conflict |

Peter Powers
FinFleet IT Alliance
|
Posted - 2010.06.04 19:23:00 -
[16]
Originally by: Dragonaire
You've developed Pheal/EAAL for an application/framework you've made which is much the way the code that became Yapeal started out as in an application I developed for my corp. So it was a solution to a need you had which is good and it seems you took some time to make it in a way that allowed it to be translated fairly easily from Ruby to PHP which is great
I wrote EAAL in 2008 to learn ruby, and because i wanted a library which needed very little maintenance when new pages where added to the EVE API. EAAL since then has been used for various applications, and seen contributions by several developers. At no point in the development of EAAL there was even a thought about if/how this could be ported to PHP. Why it was ported is outlined in my Blog - because there simply was no PHP Library which would work as flexible as Pheal or EAAL do for PHP. (For Python Entity wrote an awesome library which works quite similar, long before i ever looked at python, and long before i wrote EAAL).
Originally by: Dragonaire
You seem to have even made it in a general enough way that others might be able to use it as well
it was designed to stand alone, and integrate well in all sorts of environments, you use PHP5.2 in a default setup? it works, without additional libraries etc.
Originally by: Dragonaire but I'll bet the chances are once people do start using it in ways you never thought of yourself you'll find changes will need to be made.
Changes that would need to be made would be if the way the EVE API works. Stuff like writing to a database, or other cache handlers can and should simply be done userland, by design.
Originally by: Dragonaire Yapeal has been doing that every since I made it public over a year ago and continues to change as the APIs and the applications it is used in grow and change as well.
EAAL and Pheal are designed to NOT need changes when CCP adds new pages to the API, thats one of the design goals, and it works for EAAL quite well (and will for Pheal too). Its one of the things that i think where missing in Yapeal or Ale.
Northern Crusade - Daily numbers on EVE's largest current conflict |

Lumy
Minmatar eXceed Inc. HYDRA RELOADED
|
Posted - 2010.06.04 19:29:00 -
[17]
Edited by: Lumy on 04/06/2010 19:34:51
Originally by: Peter Powers
right, because writing a config file through the application is much more efficient, than using configuration which the application needs anyways. If i for example use a database, then i dont want it to be configured in two places, i want my frameworks / applications database connection data, and IF i'd agree (which i dont) with an API library writing to the database (yeah, a data import library which writes to the database directly not using my model...), then i would want my application to directly tell the library what todo, not write an additional file.
...
And that's why Ale allows you to pass it active database connection. Something like this:
$db = mysql_connect(...); $ale = AleFactory::getEVEOnline(array('cache.db' => $db)); For what it matters, you can define/override any value from config file in same way.
Just saying... 
Originally by: Peter Powers EAAL and Pheal are designed to NOT need changes when CCP adds new pages to the API, thats one of the design goals, and it works for EAAL quite well (and will for Pheal too). Its one of the things that i think where missing in Yapeal or Ale.
Now you hurt my feelings.
Joomla! in EVE - IGB compatible CMS. |

Peter Powers
FinFleet IT Alliance
|
Posted - 2010.06.04 19:42:00 -
[18]
Edited by: Peter Powers on 04/06/2010 19:43:14
Originally by: Lumy
And that's why Ale allows you to pass it active database connection. Something like this:
$db = mysql_connect(...); $ale = AleFactory::getEVEOnline(array('cache.db' => $db)); For what it matters, you can define/override any value from config file in same way.
Just saying... 
actually, i didnt find that part in the Docs, probably didnt look deep enough though.. :( you should get the docs a bit more sorted, but you know that :)
Originally by: Peter Powers EAAL and Pheal are designed to NOT need changes when CCP adds new pages to the API, thats one of the design goals, and it works for EAAL quite well (and will for Pheal too). Its one of the things that i think where missing in Yapeal or Ale.
Now you hurt my feelings.
ouch, yes, i fail and take back what i said about Ale in this regard. I apologize for unintentionally spreading missinformation. you had the simplexml extending solution which actually works well in this regard. sorry again.
Northern Crusade - Daily numbers on EVE's largest current conflict |

Peter Powers
FinFleet IT Alliance
|
Posted - 2010.06.05 11:03:00 -
[19]
for those interested in commit notifications, you can follow "King23Framework" on Twitter http://twitter.com/King23Framework
or join the irc channel #king23 at the coldfront network (irc.coldfront.net) (whenever i do a commit to github to king23 or pheal a bot will join and announce it there)
Northern Crusade - Daily numbers on EVE's largest current conflict |

Dragonaire
Caldari Corax. New Eden Retail Federation
|
Posted - 2010.06.05 11:26:00 -
[20]
I think part of the problem you and others sometime miss when looking at Yapeal is where it fits in to the application which I'm sure is because I haven't done as good a job explaining my original design goal as I should have.
I'm sure you're knowledgeable in MVC web design and how it works. Yapeal was made to be part of the Model in that it is helping abstract the data. One of the things I was noticing when I started working on it was there were many people that wanted to make some wonderful new tools/ applications use the APIs but they were getting stuck because they don't know how to work with XML at least in the form CCP used. I understood and found working with it relatively easy and knew that most of them were use to working with databases in 2-3 tier MVC designs so I thought making a library that would take the data from the XML in the APIs and move it into a database they could use and have it be somehow 'Auto-magically' as I called it updated with new data would be a great help. So it was aimed at allowing developers use to making web applications on LAMP/WAMP stacks develop their stuff with minimal knowledge of how the APIs themselves worked.
Other core idea of Yapeal was that the API for the application developer was the database itself. That had the advantage that they could use any language or framework they want for the frontend as long as it could talk to the database.
You also have said you didn't understand why it uses a ini file for some of it configuration. Part of the reason I did choose to use an ini file for the set once and forget stuff like the database user/password and logging settings was every language that I know of either has something build in to the language to work with them or a library/extension or what every they choose to call it to do so. They are also easy for people to understand and make manual changes to if needed as long as you make sure it is well commented All the stuff like adding user/char/corp etc and controlling which API to get data for are managed though tables in the DB and for anyone using PHP I've also added utility classes to help manage them and that are used internally to do so as well now during installation by the installer and for disabling APIs/users/chars/corps during some limited error conditions.
Okay I've took up enough of your thread space talking about my project so I'll wrap this up Hopefully you found it interesting and I didn't really plan to pirate it like I have  -- Finds camping stations from the inside much easier. Designer of Yapeal for Eve API.
|

Bai Guang
Caldari Edge Of Infinity Honourable Templum of Alcedonia
|
Posted - 2010.06.06 05:28:00 -
[21]
Now i might be a bit late to the party, but having more choices with which library to use is never a bad thing.
I am however, a die hard ALE user as you can do everything in that that you can with this one. Config via app, no need for database, not effected when CCP changes something in the API, etc.
Just my 2 cents 
Keep up the good work though.
|

Kaylana Syi
Minmatar Stimulus Rote Kapelle
|
Posted - 2010.06.18 19:23:00 -
[22]
Hey Peter. Good work. Good work to Lumy on his project too. I don't suppose you'd look into starting a bitbucket repo for Pheal would you?
I have both but currently really enjoying Mecurial, and it is github's main competitor. It doesn't really need to have all the change tracking, but it would be nice to be able to use the latest repo using Mecurial. I don't want you to do double work but it would be nice to get better accessibility.
Keep up the good work guys.
Team Minmatar
|

Peter Powers
FinFleet IT Alliance
|
Posted - 2010.06.21 08:44:00 -
[23]
Originally by: Kaylana Syi
I have both but currently really enjoying Mecurial, and it is github's main competitor. It doesn't really need to have all the change tracking, but it would be nice to be able to use the latest repo using Mecurial. I don't want you to do double work but it would be nice to get better accessibility.
Ahoy Kaylana,
first of all sorry for the late answer, im having alot of RL stuff going on atm.
personally i use git for everything i do in private (and svn at work), so i dotn really have any knowledge about mecurial, however, if you want todo that - go ahead and setup a mirror (let me know if you do), but personally i wont learn to work with mecurial for this.
If you dont want to use git, all releases are tagged, and therefor can be downloaded as tgz or zip archive on github, check http://github.com/ppetermann/pheal/downloads
regards, PP
Northern Crusade - Daily numbers on EVE's largest current conflict |

Peter Powers
FinFleet IT Alliance
|
Posted - 2010.07.04 11:17:00 -
[24]
since a few people have been asking me for more usage examples on pheal, i have hacked together a small project demonstrating its use, check out: http://github.com/ppetermann/king23_pheal_cli which is basically a set of King23 Tasks to get a hand full of information from the EVE API, while this example requires King23 (will be installed by using the git submodule stuff), the lines using Pheal should be understandable and useable without the King23 Framework too.
regards, PP
Northern Crusade - Daily numbers on EVE's largest current conflict |

Qoi
New Eden Warriors
|
Posted - 2010.07.27 10:28:00 -
[25]
Edited by: Qoi on 27/07/2010 10:30:06 new version, fixed bug with caching
on behalf of Peter Powers
|

Captain Corbulo
FinFleet IT Alliance
|
Posted - 2010.08.01 21:24:00 -
[26]
a bug which caused attributes of an element to be overwritten has been fixed
|

Kelas Tovat
|
Posted - 2010.08.07 22:47:00 -
[27]
Hi, I have been playing around with this library, it's pretty nice. I have one problem though, I have been using it on a dev server I have at home but when it gets really cold here my internet connection gets flaky, this causes a problem when the cache file is out of date and the API server can't be contacted.
I think it would be nice if you added an argument to the cache->load method that allows for forced loading of the cached file. That way if you can't load data from the API you can simply force the loading of expired data from the cache.
I have some sample code below if you would like to work on it more and incorporate it that would be awesome. :D
private function request_xml($scope, $name, $opts) { $opts = array_merge(PhealConfig::getInstance()->additional_request_parameters, $opts); if(!$xml = PhealConfig::getInstance()->cache->load($this->userid,$this->key,$scope,$name,$opts)) { $url = PhealConfig::getInstance()->api_base . $scope . '/' . $name . ".xml.aspx"; $url .= "?userid=" . $this->userid . "&apikey=" . $this->key; foreach($opts as $name => $value) { $url .= "&" . $name . "=" . urlencode($value); } if($xml = join('', file($url));) { PhealConfig::getInstance()->cache->save($this->userid,$this->key,$scope,$name,$opts,$xml); } else { $xml = PhealConfig::getInstance()->cache->load($this->userid,$this->key,$scope,$name,$opts,TRUE); } } return new PhealResult(new SimpleXMLElement($xml)); }
public function load($userid, $apikey, $scope, $name, $args, $force = FALSE) { $filename = $this->filename($userid, $apikey, $scope, $name, $args); if(!file_exists($filename)) return false; $xml = join('', file($filename)); if($force) return $xml if($this->validate_cache($xml, $name)) return $xml; return false; }
You might have to double check that formatting, the forum isn't the best for formatting code.
|

Peter Powers
FinFleet IT Alliance
|
Posted - 2010.08.23 08:35:00 -
[28]
Originally by: Kelas Tovat Hi, I have been playing around with this library, it's pretty nice. I have one problem though, I have been using it on a dev server I have at home but when it gets really cold here my internet connection gets flaky, this causes a problem when the cache file is out of date and the API server can't be contacted.
I think it would be nice if you added an argument to the cache->load method that allows for forced loading of the cached file. That way if you can't load data from the API you can simply force the loading of expired data from the cache.
first of all, sorry for the late reply, second - i think the right way of doing that would be implementing a cache class which does that
Northern Crusade - Daily numbers on EVE's largest current conflict |

Peter Powers
FinFleet IT Alliance
|
Posted - 2010.08.24 22:04:00 -
[29]
Originally by: Kelas Tovat
I think it would be nice if you added an argument to the cache->load method that allows for forced loading of the cached file. That way if you can't load data from the API you can simply force the loading of expired data from the cache.
ok, i added a new cache variant, which is extending the regular filecache, and overriding the validation method, this way, if a cache file exists for your request then it will be used - no matter what - that should be pretty much what you asked for.
usage is simple - instead of
Originally by: "code" PhealConfig::getInstance()->cache = new PhealFileCache();
you do
Originally by: "code" PhealConfig::getInstance()->cache = new PhealFileCacheForced();
this change is available in v0.0.5, which i just pushed to github :)
best regards, PP
Northern Crusade - Daily numbers on EVE's largest current conflict |

Peter Powers
FinFleet IT Alliance
|
Posted - 2010.10.12 08:25:00 -
[30]
v0.0.6 is now available, which is basically a bug fix.
if the api was not reachable after the cache expired pheal would write an empty cache file and throw an Exception when trying to read that. Now it should throw a PhealException instead of writing the empty file.
thanks to wengole who found t his bug.
Northern Crusade - Daily numbers on EVE's largest current conflict |

Peter Powers
FinFleet IT Alliance
|
Posted - 2010.11.12 13:01:00 -
[31]
Pheal 0.0.7:
Bugfixes: - a bug with element names has been fixed (Wollari) - in some php configurations $_ENV is not available, now getenv() is used (niki)
Features - can now use curl rather then usual file getting (Wollari) - can now archive API cache (Wollari) - RowSetRows can now be casted to strings, when done so they will contain the text content of such element (Peter Powers)
For the new features feel free to read the README, i dont know if Wollari is going to add a few words to this thread.
Recommendation: Update ASAP, should be compatible.
Northern Crusade - Daily numbers on EVE's largest current conflict |

Peter Powers
FinFleet IT Alliance
|
Posted - 2010.11.14 11:37:00 -
[32]
Pheal 0.0.8:
Bugfixes: - caching broken in 0.0.7 fixed again (Wollari)
Recommendation: Update ASAP, should be compatible.
Northern Crusade - Daily numbers on EVE's largest current conflict |

Peter Powers
FinFleet IT Alliance
|
Posted - 2010.11.24 08:16:00 -
[33]
Wollari did some more work,
Release: v0.0.9 https://github.com/ppetermann/pheal
Changes - few bug fixes / adjustments relating to rights in the filesystem - feature: logging of API calls
Recommendation Update if having errors, or needing new feature.
Northern Crusade - Daily numbers on EVE's largest current conflict |

Wollari
Phoenix Industries Black Star Alliance
|
Posted - 2010.11.24 15:21:00 -
[34]
Originally by: Peter Powers I don't know if Wollari is going to add a few words to this thread.
Sure. Atm I'm busy recoding all my API daemons that are updating dotlan evemaps to use Pheal instead of pure SimpleXML (what I'm still using).
I like the simple approach just to provide an easier and generic interface to the API results rather then having a full API library that wants to handle everything. My application defines the database layout not the API library.
ATM I'm looking forward to see what kind of Features I'll enable on evemaps in the future.
|

Ghorth
|
Posted - 2010.11.29 21:38:00 -
[35]
I'm very glad on finding this library. Very easy to use, install, with just a single line of code :) I'm still a rookie in all this php and api thing, but managed to get it to work on an mvc!
It's really simple to get any value from the api... But I am struggeling on getting a list of values. For example:
Quote: echo $api->CharacterSheet(array("characterID" => $character->characterID))->skills[24]->skillpoints;
This will get me the amount of skillpoints for the skill at index 24.
But what if you want to get ALL your skills? and how do you get the naming of the skill (typeID to name)?
Regards
|

Wollari
Phoenix Industries Black Star Alliance
|
Posted - 2010.11.30 15:44:00 -
[36]
Originally by: Ghorth
echo $api->CharacterSheet(array("characterID" => $character->characterID))->skills[24]->skillpoints; This will get me the amount of skillpoints for the skill at index 24.
But what if you want to get ALL your skills? and how do you get the naming of the skill (typeID to name)?
Regards
You just loop through the skills and count them
try { $API = new Pheal($userID, $apiKey, 'char'); $sheet = $API->CharacterSheet(array('characterID' => $characterID)); } catch (PhealException $E) { // do something with the error $E->getCode(); // maybe mark your API Key as Invalid (see CCP's error codes, etc) }
$skillpoints = 0; foreach($sheet->skills AS $skill) $skillpoints += $skill->skillpoints;
For the real names of the Skills/Items you better take a look into the Static Database Dump (invTypes/eveNames) and match this with the typeID
|

Peter Powers
FinFleet Raiden.
|
Posted - 2011.01.31 08:25:00 -
[37]
Hey guys, after the last few weeks have been a bit silent, here is the latest release of Pheal.
Release: v0.0.13 https://github.com/ppetermann/pheal
Changes - Workarround for a bug with cachetimers (thanks Wollari) - Extended Support for https (thanks Wollari) - Support for http keep_alive (and again, thanks Wollari) - support for fluent scope settings (thanks erik)
Recommendation Upgrade, use https.
|

Peter Powers
FinFleet Raiden.
|
Posted - 2011.02.07 21:56:00 -
[38]
Wollari is killing my sleep with all his Pull requests, so now presending the next version
Release: v0.0.14 https://github.com/ppetermann/pheal
Changes now offers an toArray() method, that allows to convert pheal results to arrays (for example if you need to put 'em out as json)
Recommendation Upgrade, if you have use for toArray, otherwise you can skip version.
|

Aglaia Adrastos
|
Posted - 2011.02.15 23:41:00 -
[39]
I'm trying some tests to get to know this library but i gather its only me getting issues :P
Quote: Warning: SimpleXMLElement::__construct()
and a lot of them. the code I'm using is;
Quote: $pheal = new Pheal(); try { $result = $pheal->eveScope->FacWarStats(); $result = $pheal->ApiPage(); $rawxml = $pheal->xml; } catch(PhealException $e) { echo 'error: ' . $e->code . ' meesage: ' . $e->getMessage(); }
Maybe i'm miss understanding something but it caches the file fine and so on, just doesn't print the xml.
|

Aglaia Adrastos
|
Posted - 2011.02.16 09:40:00 -
[40]
Originally by: Wollari
Originally by: Ghorth
echo $api->CharacterSheet(array("characterID" => $character->characterID))->skills[24]->skillpoints; This will get me the amount of skillpoints for the skill at index 24.
But what if you want to get ALL your skills? and how do you get the naming of the skill (typeID to name)?
Regards
You just loop through the skills and count them
try { $API = new Pheal($userID, $apiKey, 'char'); $sheet = $API->CharacterSheet(array('characterID' => $characterID)); } catch (PhealException $E) { // do something with the error $E->getCode(); // maybe mark your API Key as Invalid (see CCP's error codes, etc) }
$skillpoints = 0; foreach($sheet->skills AS $skill) $skillpoints += $skill->skillpoints;
For the real names of the Skills/Items you better take a look into the Static Database Dump (invTypes/eveNames) and match this with the typeID
found the foreach was adding up skill points to display total not each one as a new record.
$skillpoints = 0; foreach($sheet->skills AS $skill){ $skillpoints = $skill->skillpoints; }
still looking into my own learning of this to get the skill id displayed.
|

Peter Powers
FinFleet Raiden.
|
Posted - 2011.02.16 12:02:00 -
[41]
Originally by: Aglaia Adrastos I'm trying some tests to get to know this library but i gather its only me getting issues :P
Quote: Warning: SimpleXMLElement::__construct()
and a lot of them. the code I'm using is;
Quote: $pheal = new Pheal(); try { $result = $pheal->eveScope->FacWarStats(); $result = $pheal->ApiPage(); $rawxml = $pheal->xml; } catch(PhealException $e) { echo 'error: ' . $e->code . ' meesage: ' . $e->getMessage(); }
Maybe i'm miss understanding something but it caches the file fine and so on, just doesn't print the xml.
does it give you any line/file where that warning occurs?
|

Wollari
Phoenix Industries
|
Posted - 2011.02.16 13:06:00 -
[42]
Originally by: Aglaia Adrastos found the foreach was adding up skill points to display total not each one as a new record.
$skillpoints = 0; foreach($sheet->skills AS $skill){ $skillpoints = $skill->skillpoints; }
Of course ... if you wanna have the total SP of your character you've to just sum up all skillpoints, thats what the loop was for. And it should give your an example on how things work.
If you wanna get all skills you loop through them and fetch typeID, level and skillpoints. Additionally you need the Skill Names and their Group (from invTypes/invGroups) to sort them right and display their name.
|

Wollari
Phoenix Industries
|
Posted - 2011.02.16 13:13:00 -
[43]
Originally by: Aglaia Adrastos I'm trying some tests to get to know this library but i gather its only me getting issues :P
Quote: Warning: SimpleXMLElement::__construct()
and a lot of them. the code I'm using is;
Quote: $pheal = new Pheal(); try { $result = $pheal->eveScope->FacWarStats(); $result = $pheal->ApiPage(); $rawxml = $pheal->xml; } catch(PhealException $e) { echo 'error: ' . $e->code . ' meesage: ' . $e->getMessage(); }
Maybe i'm miss understanding something but it caches the file fine and so on, just doesn't print the xml.
It maybe don't work cause you're calling $pheal->ApiPage() which was just an example and not a real API Page. The combination of Scope + called method(params) gets translated into api.eveonline.com/<scope>/<method>?<params>. Afterwords the result is parsed using SimpleXML and transformed into the return PhealResult object.
The construct() warning messages comes likely from a non-xml result. API Pages that are not beeing returned as XML (404 messags are HTML) will result in XML parsing warnings/errors. Errors are beeing catched with "try{}catch()" and are throwing a PhealException finally, but php warnings will still be displayed until we suppress them (which would be a bad way)
Anyway ... I'll change Pheal that we'll throw a PhealException if the Server returns something that's not okay (like 404 or 500)
|

Aglaia Adrastos
|
Posted - 2011.02.16 22:46:00 -
[44]
Edited by: Aglaia Adrastos on 16/02/2011 22:50:03 Just linked in my copy of the static dump... should of done it before.
Now i just want to join a mail group for any updates to Pheal, now officially ADDICTED as this is what I've been needing and wanting for a LOOOONG time.
Keep up the good work
Quote:
$skillpoints = 0; foreach($sheet->skills AS $skill){
$ergebnis = mysql_query("SELECT * FROM " . $evedb . ".invTypes WHERE typeID = '".$skill->typeID."'", $intel); while($ds = mysql_fetch_array($ergebnis)) { $skilltype = $ds['typeName']; }
$skillpoints = $skill->skillpoints; $level = $skill->level; echo ' - '. $skilltype . ', ' .$skillpoints . 'sp, L' . $level . '<br />'; }
works like a dream for testing, will future proof the mysql_query with another function just this was written for a quick glance.
the $evedb and $intel are due to me using more than one table in my site so not to lose any information when i update the static dump.
|

MJ Maverick
IronPig Sev3rance
|
Posted - 2011.02.27 23:53:00 -
[45]
Any idea how I would pull a list of corporationIDs that are members of a specified alliance from AllianceList? I'm trying to pull them in but just can't find an example to go off and what I have tried so far pulls in nothing.
------------------ Forum sig limits are too tight. So I cba to have a sig any more.
CCP arse kissing drones are not welcome in my threads. CCP are not perfect. |

Wollari
Phoenix Industries
|
Posted - 2011.02.28 19:15:00 -
[46]
Originally by: MJ Maverick Any idea how I would pull a list of corporationIDs that are members of a specified alliance from AllianceList? I'm trying to pull them in but just can't find an example to go off and what I have tried so far pulls in nothing.
Sadly there's no API that let you query a specific alliance. You've to query the whole AllianceList API and loop through it until you find what you need.
tbh It would make more sense to load that data into the db first, but hat something different.
|

MJ Maverick
IronPig Sev3rance
|
Posted - 2011.02.28 19:24:00 -
[47]
Ah, damn. So basically dump the AllianceList.xml into a DB?
Is there a function in Pheal to do that? If not any ideas what the best way to do it would be and an example database structure?
------------------ Forum sig limits are too tight. So I cba to have a sig any more.
CCP arse kissing drones are not welcome in my threads. CCP are not perfect. |

Peter Powers
FinFleet Raiden.
|
Posted - 2011.02.28 23:46:00 -
[48]
Originally by: MJ Maverick Ah, damn. So basically dump the AllianceList.xml into a DB?
Is there a function in Pheal to do that? If not any ideas what the best way to do it would be and an example database structure?
no, the api library would be the wrong place to do this. the design of the database depends on what you need, and what database system you are using.
Vote Peter Powers for CSM6!
|

MJ Maverick
IronPig Sev3rance
|
Posted - 2011.03.01 02:41:00 -
[49]
Thanks for the reply. It would be using MySQL and PHP5.
Preferably I just want to retrieve corps from a specified alliance so in pseudo: where <row name> = SpecifiedAlliance dump <rowset name="memberCorporations"> -> <row>'s into TBLmemberCorporations
So a table "memberCorporations" with fields: corporationID, startDate
------------------ CCP are not perfect. :)
|

Spartan 019
|
Posted - 2011.03.11 07:06:00 -
[50]
Edited by: Spartan 019 on 11/03/2011 07:07:48 Edited by: Spartan 019 on 11/03/2011 07:07:01 This looks awesome so far... but being a nub, I can't figure it out lol. Going by your examples in the readme... I get errors.
### Example 1, getting a list of characters on the account: require_once "Pheal/Pheal.php"; spl_autoload_register("Pheal::classload"); $pheal = new Pheal("myUserid", "myAPI key"[, "scope for request"]);
$result = $pheal->Characters(); foreach($result->characters as $character) echo $character->name;
the "[, "scope for request"]" part is what I don't understand.
Could you help me with this? lol thx :)
|

Tazo Chi
|
Posted - 2011.03.12 05:55:00 -
[51]
Originally by: Spartan 019 Edited by: Spartan 019 on 11/03/2011 09:19:07 Ok, I've been playing with this thing for the past few hours... lol. I'm a nub at php really.
I've got it displaying the characters per your example... but how do I go about finding how to display other things like a characters corporation, alliance, skills... etc?
I've been looking everywhere for documentation beyond the readme... and it's pretty bleak.
Please help. =)
I've written a basic program that shows most of the Character Sheet info, skill lists, and your ability to fly a pvp battlecruiser. This is a stripped down version of a larger program but you should be able to read through the source and figure out what it is doing. If you have the ability to install it you can do that as well but it needs an SQL database to be able to look up the skill names from the invTypes table.
I'm also new to pheal and php. I'm sure there are better ways to have written this but it's the best I could do.
api_check.zip 563kb zip file
|

Wollari
Phoenix Industries
|
Posted - 2011.03.12 21:03:00 -
[52]
Originally by: Spartan 019 Edited by: Spartan 019 on 11/03/2011 09:19:07 Ok, I've been playing with this thing for the past few hours... lol. I'm a nub at php really.
I've got it displaying the characters per your example... but how do I go about finding how to display other things like a characters corporation, alliance, skills... etc?
I've been looking everywhere for documentation beyond the readme... and it's pretty bleak.
Please help. =)
You should take a closer look to the available APIs that CCP offers. Pheal is only a library to access and walk through the API result and at the same time handling caching, logging, keepalive and all this transportlayer stuff.
If you know what you want to achive with the given API data, you'll be fast accessing and using the given data with Pheal.
|

Spartan 019
|
Posted - 2011.03.14 07:11:00 -
[53]
Edited by: Spartan 019 on 14/03/2011 07:11:37 Man, I've pretty much figured it out so far. Thanks to the developers! I've learned soo much with this! :D
|

Crystalia Knauk
|
Posted - 2011.04.14 15:57:00 -
[54]
How do use the following api method with pheal? Char_JournalEntries
|

MJ Maverick
IronPig Sev3rance
|
Posted - 2011.05.24 03:01:00 -
[55]
FYI:
Strict Standards: date_default_timezone_get() [function.date-default-timezone-get]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'America/Chicago' for 'CDT/-5.0/DST' instead in /home/*****/public_html/forumapi/pheal/PhealResult.php on line 70
------------------ CCP are not perfect. :) [EVEOTS] Eve Online Teamspeak 3 API Registration
|

Peter Powers
FinFleet Raiden.
|
Posted - 2011.05.24 16:24:00 -
[56]
Originally by: MJ Maverick FYI: Strict Standards: date_default_timezone_get() [function.date-default-timezone-get]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'America/Chicago' for 'CDT/-5.0/DST' instead in /home/*****/public_html/forumapi/pheal/PhealResult.php on line 70
so, either setup date.timezone in your php.ini, set the TZ environment variable of your system, or run date_default_timezone_set in your application, its not like a library you use should change the timezone settings you have ;) Deblob! the Website with Statistics about the BFF vs. DRF+Friends. Conflict!
|

MJ Maverick
IronPig Sev3rance
|
Posted - 2011.05.24 17:04:00 -
[57]
Ah k, I can't find anything like that in my php.ini, do you know what the field actually is? I've CTRL+F'd "time" and "date" and can't find anything similar.
------------------ CCP are not perfect. :) [EVEOTS] Eve Online Teamspeak 3 API Registration
|

Squizz Caphinator
Woopatang Primary.
|
Posted - 2011.05.24 18:03:00 -
[58]
Originally by: MJ Maverick Ah k, I can't find anything like that in my php.ini, do you know what the field actually is? I've CTRL+F'd "time" and "date" and can't find anything similar.
http://php.net/manual/en/function.date-default-timezone-set.php
Example:
Quote:
date_default_timezone_set("UTC");
-- EveChatter |

MJ Maverick
IronPig Sev3rance
|
Posted - 2011.05.24 19:12:00 -
[59]
Hmm, I added
Quote: date.timezone = "Europe/London"
to php.ini (PHP v5.2.14) but I'm still getting it. :/
------------------ CCP are not perfect. :) [EVEOTS] Eve Online Teamspeak 3 API Registration
|

Peter Powers
FinFleet Raiden.
|
Posted - 2011.05.26 05:39:00 -
[60]
Originally by: MJ Maverick Hmm, I added
Quote: date.timezone = "Europe/London"
to php.ini (PHP v5.2.14) but I'm still getting it. :/
http://www.php.net/manual/en/datetime.configuration.php it explains how it needs to be named, what options are accepted (link to a timezone list is there). Also, have you restarted your webserver after changing the php.ini? Deblob! the Website with Statistics about the BFF vs. DRF+Friends. Conflict!
|

Snipes2083
|
Posted - 2011.07.10 22:34:00 -
[61]
Edited by: Snipes2083 on 10/07/2011 22:53:09 Edited by: Snipes2083 on 10/07/2011 22:50:49 Hey all, I am sorry for bumping a thread that has not had a post in it for a while bit it appears that this is the only place where general questions about the API are being addressed.
I may be misunderstanding how to go about using this API but after looking at the apiCheck demonstrations and reading the brief documentation that is given on the API this is the code that I have come up with.
Quote: include "pheal/Pheal.php"; spl_autoload_register("Pheal::classload"); PhealConfig::getInstance()->cache = new PhealFileCache(".pheal/cache/"); $pheal = new Pheal($userID, $APIKey, $charID, "corp"); $sheet = $pheal->CorporationSheet();
What I think this should do is load the CorporationSheet into $sheet in which I can access an array of information. Instead i get a page full of parse errors due to the API grabbing an unexpected page.
Thank you in advance for any assistance that you may be able to provide.
o7
|

Snipes2083
|
Posted - 2011.07.11 02:45:00 -
[62]
In response to my own post, I figured out what it was that was holding me back and figured I would post the solution to help others.
Quote: include "pheal/Pheal.php"; spl_autoload_register("Pheal::classload"); PhealConfig::getInstance()->cache = new PhealFileCache(".pheal/cache/"); $pheal = new Pheal($userID, $APIKey, "corp"); $sheet = $pheal->CorporationSheet(array(characterID=>$charID));
It took me a little while figure out how the $charID variable had to be passed.
|

Peter Powers
FinFleet Raiden.
|
Posted - 2011.07.11 23:19:00 -
[63]
Originally by: Snipes2083
Quote: $sheet = $pheal->CorporationSheet(array(characterID=>$charID));
you really should put the key into quotes so it reads: $pheal->CorporationSheet(array('characterID' =>$charID));
otherwise you will get warnings on a proper setup :) wearing expensive clothes since 2011.06.24 22:03:00
|

Snipes2083
|
Posted - 2011.07.12 10:11:00 -
[64]
Ok good to know. Thanks for the tip. BTW, Thanks for the work you have put into this. I know how hard it is as I have pretty much wrote one for the bliz armory. It is a lot of work and I thank you for not only doing it but doing it well.
|

Snipes2083
|
Posted - 2011.07.12 16:11:00 -
[65]
General Question: How do you pass a parameter to the API?
More Specific Question: If you are to walk the entries in the journal, how do you pass the $beforeRefID value? I have found no reference in the documentation as to how to address this situation and although I can work with PHP I am not good enough to really understand what is going on with the objects. Below is my failed attempt to pass this information. It did not work .. $beforeRefID ='1234567890' $corpSheet = $corpPheal->CorporationSheet(array('characterID'=>$fullCharID), $beforeRefID);
Again thank you all in advance for any help you can offer.
|

Snipes2083
|
Posted - 2011.07.12 16:22:00 -
[66]
OK once again I answered my own question. If only I would come up with the answer before posting the question I could save some thread space. Oh well, perhaps somebody can benefit from it.
The parameters all get passed in the array like below.
Quote: $fullCharID = "your full API key"; $refID ='1234567890'; $charJournal = $corpPheal->WalletJournal(array('characterID'=>$fullCharID,'beforeRefID'=>$refID));
o7
|

Captain Xero
Gallente 3 Star Industries
|
Posted - 2011.08.31 21:44:00 -
[67]
I'm having a little trouble walking over the returned asset list.
$pheal = new Pheal($accountID, $full_api_key, "corp"); $result = $pheal->AssetList(array("characterID" => $charID));
foreach($result->assets as $row) { echo $row->itemID; }
When there are nested assets (things in containers etc) this loop seems to go over everything twice. Does anyone have any pointers on this?
Apart from this I've managed to completely replace the code I'd written with PHEAL, it works great - thanks.
|

Peter Powers
FinFleet Raiden.
|
Posted - 2011.08.31 22:31:00 -
[68]
can you please create a new issue at github, and add an example of the xml causing this? (for example from your cache directory) wearing expensive clothes since 2011.06.24 22:03:00
|

Captain Xero
Gallente 3 Star Industries
|
Posted - 2011.09.01 11:23:00 -
[69]
Yeah no problem, I've created an issue. I was trying to narrow the problem down a bit, but it has me stumped. It seems to be to do with the size of the file, so it will be interesting to see if you can replicate the issue or if it's something wrong with my environment.
|
|
|
Pages: 1 2 3 :: [one page] |