Where is the latest USEFUL API? finding INFO for C5 is extremely frustrating...

Permalink
I apologize to devs and readers if this post seems rude, but i have literally spent 4x as much time googling for info (and getting nowhere) as I have actually coding to get ahold of a decent API reference for the latest version.

Longtime developer here, and I am getting fed up with concrete's lacklustre API reference. I am looking for 8.1/8.2 API info on:

Files - programmatically adding, deleting, retrieving URLS
Images - programmatically adding, deleting, retrieving URLS, creating thumbnails
Fileset - programmatically adding, deleting sets, and adding/deleting files to and from sets
Page helper - programmatically adding, deleting, retrieving URLS
Page lists - programmatically adding, deleting, and setting up ajax pagination

Mostly I will be using in the context of ajax calls, but I am in the process of converting my core client product from 5.6 to the latest version.

I specifically held off from upgrading from 5.6 until now to let things mature and "settle down" after the big 5.7 change, but it seems like things have only gotten worse. Seriously devs, it is TIME TO STOP developing the core and create some tutorials, code examples, and a USEFUL documentation reference for the latest API.

I am going to flat out be rude here:

If you need an example of how to do it correctly, go look at the laravel website.

90% of the published 5.7 reference is not used in the day to day development of a C5 site, and it seems the class hierarchy is listed without coherency, statement of purpose or basic indication of what classes do and why. Like, who cares what type of variables are passed, when you don't even know what the object and function does to begin with? For starters, is the 5.7 API reference just for 5.7 or is it for 8+ as well??? If so, change the title so that people can google it at the very least for pete's sake!

To be frank it seems as of now you can learn more from this URL than the entire concrete website ...

http://www.webli.us/cheatsheet/doku.php...

 
JohntheFish replied on at Permalink Reply
JohntheFish
I am guessing you have already seen doccumentation.concrete5.org and the linked auto-generated api reference?

You share my frustration with the @phpdoc generated info. Perhaps of some use to IDEs, but for humans next to useless unless there is additional explanation in the docs and real comments in the code.

https://www.concrete5.org/community/forums/5-7-discussion/99-of-phpd...
TundraTech replied on at Permalink Reply
Found this, though it seems incomplete:

https://docs.mnkras.com/blocks_2file_2add_8php.html...

While digging and back tracking through source code to figure the API out (extremely frustrating) an important hint I discovered is that when trying to figure out where the class files are physically located based on the namespace...

eg. Concrete\Core\Application\Service\FileManager

the 'Core' namespace is actually in the concrete "src' folder.

So the real file location is \Concrete\Src\Application\Service\FileManager.php
MrKDilkington replied on at Permalink Reply
MrKDilkington
Hi TundraTech,

Community member danielharris created a Sami generated API documentation site.
http://c5docs.danielrharris.com/develop/...

I believehttp://documentation.concrete5.org/... will be switching over to a similar setup soon.

I agree with JohntheFish that PHP DocBlocks that only include method parameter and return value types are missing out on also including a description and example.

Community contributors mnkras and mlocati have been doing an excellent job of this (including type and description).